ICT Macro Zone Boxes w/ Individual H/L Tracking v3.1ICT Macro Zones (Grey Box Version
This indicator dynamically highlights key intraday time-based macro sessions using a clean, minimalistic grey box overlay, helping traders align with institutional trading cycles. Inspired by ICT (Inner Circle Trader) concepts, it tracks real-time highs and lows for each session and optionally extends the zone box after the session ends — making it a precision tool for intraday setups, order flow analysis, and macro-level liquidity sweeps.
### 🔍 **What It Does**
- Plots **six predefined macro sessions** used in Smart Money Concepts:
- AM Macro (09:50–10:10)
- London Close (10:50–11:10)
- Lunch Macro (11:30–13:30)
- PM Macro (14:50–15:10)
- London SB (03:00–04:00)
- PM SB (15:00–16:00)
- Each zone:
- **Tracks high and low dynamically** throughout the session.
- **Draws a consistent grey shaded box** to visualize price boundaries.
- **Displays a label** at the first bar of the session (optional).
- **Optionally extends** the box to the right after the session closes.
### 🧠 **How It Works**
- Uses Pine Script arrays to define each session’s time window, label, and color.
- Detects session entry using `time()` within a New York timezone context.
- High/Low values are updated per bar inside the session window.
- Once a session ends, the box is optionally closed and fixed in place.
- All visual zones use a standardized grey tone for clarity and consistency across charts.
### 🛠️ **Settings**
- **Shade Zone High→Low:** Enable/disable the grey macro box.
- **Extend Box After Session:** Keep the zone visible after it ends.
- **Show Entry Label:** Display a label at the start of each session.
### 🎯 **Why This Script is Unique**
Unlike basic session markers or colored backgrounds, this tool:
- Focuses on **macro moments of liquidity and reversal**, not just open/close times.
- Uses **per-session logic** to individually track price behavior inside key time windows.
- Supports **real-time high/low tracking and clean zone drawing**, ideal for Smart Money and ICT-style strategies.
Perfect — based on your list, here's a **bundle-style description** that not only explains the function of each script but also shows how they **work together** in a Smart Money/ICT workflow. This kind of cross-script explanation is exactly what TradingView wants to see to justify closed-source mashups or interdependent tools.
---
📚 ICT SMC Toolkit — Script Integration Guide
This set of advanced Smart Money Concept (SMC) tools is designed for traders who follow ICT-based methodologies, combining liquidity theory, time-based precision, and engineered confluences for high-probability trades. Each indicator is optimized to work both independently and synergistically, forming a comprehensive trading framework.
---
First FVG Custom Time Range
**Purpose:**
Plots the **first Fair Value Gap (FVG)** that appears within a defined session (e.g., NY Kill Zone, Custom range). Includes optional retest alerts.
**Best Used With:**
- Use with **ICT Macro Zones (Grey Box Version)** to isolate FVGs during high-probability times like AM Macro or PM SB.
- Combine with **Liquidity Levels** to assess whether FVGs form near swing points or liquidity voids.
---
ICT SMC Liquidity Grabs and OB s
**Purpose:**
Detects **liquidity grabs** (stop hunts above/below swing highs/lows) and **bullish/bearish order blocks**. Includes optional Fibonacci OTE levels for sniper entries.
**Best Used With:**
- Use with **ICT Turtle Soup (Reversal)** for confirmation after a liquidity grab.
- Combine with **Macro Zones** to catch order blocks forming inside timed macro windows.
- Match with **Smart Swing Levels** to confirm structure breaks before entry.
ICT SMC Liquidity Levels (Smart Swing Lows)
**Purpose:**
Automatically marks swing highs/lows based on user-defined lookbacks. Tracks whether those levels have been breached or respected.
**Best Used With:**
- Combine with **Turtle Soup** to detect if a swing level was swept, then reversed.
- Use with **Liquidity Grabs** to confirm a grab occurred at a meaningful structural point.
- Align with **Macro Zones** to understand when liquidity events occur within macro session timing.
ICT Turtle Soup (Liquidity Reversal)
**Purpose:**
Implements the classic ICT Turtle Soup model. Looks for swing failure and quick reversals after a liquidity sweep — ideal for catching traps.
Best Used With:
- Confirm with **Liquidity Grabs + OBs** to identify institutional activity at the reversal point.
- Use **Liquidity Levels** to ensure the reversal is happening at valid previous swing highs/lows.
- Amplify probability when pattern appears during **Macro Zones** or near the **First FVG**.
ICT Turtle Soup Ultimate V2
**Purpose:**
An enhanced, multi-layer version of the Turtle Soup setup that includes built-in liquidity checks, OTE levels, structure validation, and customizable visual output.
**Best Used With:**
- Use as an **entry signal generator** when other indicators (e.g., OBs, liquidity grabs) are aligned.
- Pair with **Macro Zones** for high-precision timing.
- Combine with **First FVG** to anticipate price rebalancing before explosive moves.
---
## 🧠 Workflow Example:
1. **Start with Macro Zones** to focus only on institutional trading windows.
2. Look for **Liquidity Grabs or Swing Sweeps** around key highs/lows.
3. Check for a **Turtle Soup Reversal** or **Order Block Reaction** near that level.
4. Confirm confluence with a **Fair Value Gap**.
5. Execute using the **OTE level** from the Liquidity Grabs + OB script.
---
Let me know which script you want to publish first — I’ll tailor its **individual TradingView description** and flag its ideal **“Best Used With” partners** to help users see the value in your ecosystem.
חפש סקריפטים עבור "high low"
cd_full_poi_CxOverview
This indicator tracks the price in 16 different time frames (optional) in order to answer the question of where the current price has reacted or will react.
It appears on the chart and in the report table when the price approaches or touches the fvg or mitigations (order block / supply-demand), the rules of which will be explained below.
In summary, it follows the fvg and mitigations in the higher timeframe than the lower timeframe.
Many traders see fvg or mitigates as an point of interest and see the high, low swept in those zones as a trading opportunity. Key levels, Session high/lows and Equal high and lows also point of interest.
If we summarise the description of the point of interest ;
1- Fair value gaps (FVG) (16 time frames)
2- Mitigation zones (16 time frames)
3- Previous week, day, H4, H1 high and low levels
4- Sessions zones (Asia, London and New York)
5- Equal high and low levels are in indicator display.
Details:
1- Fair Value Gaps : It is simply described as a price gap and consists of a series of 3 candles. The reaction of the price to the gap between the 1st and 3rd candle wicks is observed.
The indicator offers 3 options for marking. These are :
1-1- ‘Colours are unimportant’: candle colours are not considered for marking. Fvg formation is sufficient.(Classical)
1-2- ‘First candle opposite colour’ : when a price gap occurs, the first candle of a series of 3 candles must be opposite.
For bullish fvg : bearish - bullish - free
For Bearish fvg : bullish - bearish - free
1-3- ‘All same colour’ : all candles in a series of 3 candles must be the same direction.
For bullish fvg: bullish - bullish - bullish
For bearish fvg : bearish - bearish – bearish
Examples:
2- Mitigation zones: Opposite candles with a fvg in front of them or candles higher/lower than the previous and next candle and with the same colour as the fvg series are marked.
Examples :
3- Previous week, day, H4, H1 high and low levels
4- Sessions regions (Asia, London and New York)
5- Equal high and low levels:
Annotation: Many traders want to see a liquidity grab on the poi, then try to enter the trade with the appropriate method.
Among the indicators, there is also the indication of grabs/swepts that occur at swing points. It is also indicated when the area previously marked as equal high/low is violated (grab).
At the end, sample setups will be shown to give an idea about the use of the indicator.
Settings:
- The options to be displayed from the menu are selected by ticking.
- 1m, 2m, 3m, 5m, 5m, 10m, 15m, 30m, h1, h4, h4, h6, h8, h12, daily, weekly, monthly and quarterly, 16 time zones in total can be displayed.
- The ‘Collapse when the price touches mitigate’ tab controls whether to collapse the box as the price moves into the inner region of the mitigate. If not selected, the size of the mitigate does not change.
- ‘Approach limit =(ATR / n)’ tab controls how close the price is to the fvg or mitigate. Instant ATR(10) value is calculated by dividing by the entered ‘n’ value.
- All boxes and lines are automatically removed from the screen when the beyond is closed.
- Colour selections, table, text features are controlled from the menu.
- Sessions hours are set as standard hours, the user can select special time zones. Timezone is set to GMT-4.
- On the candle when the price touches fvg or mitigate, the timeframe information of the POI is shown in the report table together with the graphical representation.
The benefits and differences :
1- We can evaluate the factors we use for setup together.
2- We are aware of what awaits us in the high time frame in the following candles.
3- It offers the user the opportunity to be selective with different candle selection options in fvg selection.
4- Mitige areas are actually unmitige areas because they have a price gap in front of them. The market likes to retest these areas.
5- Equal high/low zones are the levels that the price creates to accumulate liquidity or fails to go beyond (especially during high volume hours). Failure or crossing of the level may give a reversal or continuation prediction.
Sample setup 1:
Sample setup 2:
Sample setup 3:
Cheerful trades…
Enjoy…
Enhanced VSA Volume & Candle Colors with MA SelectionOverview:
This script aims to enhance the visualization of volume spikes and price action by coloring volume bars and price candles dynamically based on the volume behavior. It allows traders to customize the type of volume moving average (SMA, EMA, or VWMA) used and apply various color schemes to highlight high, low, and extreme volume conditions. Additionally, alerts are generated when extreme or low-volume conditions occur.
---------------------------------------------------------------------------------------------------------------------
Key Features:
Customizable Volume Lookback Period:
The script allows users to define the period for calculating the moving average of volume (default: 200).
Volume Multiplier Settings:
High and low volume thresholds are defined using multipliers. Users can adjust these to customize how volume is categorized (default multipliers: 1.5 for high volume, 0.5 for low volume).
Percentile-Based Extreme Volume Detection:
The script calculates a percentile threshold for extreme volume (default: 90th percentile) based on the volume data, highlighting exceptionally high volume spikes.
Moving Average Selection:
Users can choose between Simple Moving Average (SMA), Exponential Moving Average (EMA), or Volume Weighted Moving Average (VWMA) to track volume trends over the selected lookback period.
Volume-Based Price Bar Coloring:
Price bars can be colored according to the volume conditions (high, low, or extreme). This feature can be toggled on or off.
Dynamic Transparency and Color Customization:
The script allows users to set custom colors for different volume conditions (high, low, neutral, extreme) and adjusts the transparency of volume bars based on the relative size of the volume.
Alerts:
Alerts can be set for when extreme volume spikes or low volume conditions are detected.
---------------------------------------------------------------------------------------------------------------------
Script Components:
Volume Histogram Plot:
Displays the volume bars with dynamic coloring based on the volume condition (high, low, or extreme). The color of the bars adjusts for clarity, with transparency based on volume levels.
Moving Average Plot:
Plots the selected volume moving average (SMA, EMA, or VWMA) to visualize the trend of volume over the chosen lookback period.
Smoothed Average Volume (EMA of Volume):
A smoothed EMA line is plotted to provide a clear representation of volume trends over time.
Price Bar Coloring:
If enabled, price bars are colored according to the current volume condition, providing immediate visual feedback to the trader.
---------------------------------------------------------------------------------------------------------------------
How It Can Be Used:
Volume Analysis for Entry/Exit Points: Traders can use the volume conditions (high, low, and extreme) to identify potential entry or exit points. High-volume bars often signal strong market activity, while low-volume bars may indicate consolidation or indecision.
Volume Confirmation for Trend Reversal: Extreme volume spikes can sometimes precede significant price movements. Traders can monitor these spikes for potential trend reversal signals.
Customizing Alerts: Alerts based on volume conditions help traders stay updated on important volume events without constantly monitoring the chart.
Color-Coded Price Action: The dynamic coloring of price bars makes it easier to identify periods of strong or weak market participation, allowing traders to make informed decisions quickly.
---------------------------------------------------------------------------------------------------------------------
Compliance with TradingView's House Rules:
No Promotion of Financial Products: The script does not promote any specific financial instruments or products, ensuring compliance with TradingView’s content guidelines.
Clear Functionality: The script provides clear, functional analysis tools without making unsupported claims about predicting market movements.
No Automated Trading: The script does not include any automated trading or order execution features, which complies with TradingView’s policy on non-automated scripts.
This breakdown ensures clarity on the script’s purpose, features, and how it might be used by traders. It's written in a way that fits TradingView's content guidelines, keeping the focus on providing valuable analytical tools rather than making promises or promoting any financial product.
MarketStructureLibrary "MarketStructure"
Will draw out the market structure for the disired pivot length. The code is from my indicator "Marker structure" ().
Create(type, length, source, equalPivotsFactor, extendEqualPivotsZones, equalPivotsStyle, equalPivotsColor, alertFrequency)
Call on each bar. Will create a Structure object.
Parameters:
type (int) : the type of the Structure to create. 0 = internal, 1 = swing.
length (int) : The lenghts (left and right) for pivots to use.
source (string) : The source to be used for structural changes ('Close', 'High/low (aggresive)' (low in an uptrend) or 'High/low (passive)' (high in an uptrend)).
equalPivotsFactor (float) : Set how the limits are for an equal pivot. This is a factor of the Average True Length (ATR) of length 14. If a low pivot is considered to be equal if it doesn't break the low pivot (is at a lower value) and is inside the previous low pivot + this limit.
extendEqualPivotsZones (bool) : Set to true if you want the equal pivots zones to be extended.
equalPivotsStyle (string) : Set the style of equal pivot zones.
equalPivotsColor (color) : Set the color of equal pivot zones.
alertFrequency (string)
Returns: The 'structure' object.
Pivot(structure)
Sets the pivots in the structure.
Parameters:
structure (Structure)
Returns: The 'structure' object.
PivotLabels(structure)
Draws labels for the pivots found.
Parameters:
structure (Structure)
Returns: The 'structure' object.
EqualHighOrLow(structure)
Draws the boxsa for equal highs/lows. Also creates labels for the pivots included.
Parameters:
structure (Structure)
Returns: The 'structure' object.
BreakOfStructure(structure)
Will create lines when a break of strycture occures.
Parameters:
structure (Structure)
Returns: The 'structure' object.
ChangeOfCharacter(structure)
Will create lines when a change of character occures.
Parameters:
structure (Structure)
Returns: The 'structure' object.
StructureBreak
Holds drawings for a structure break.
Fields:
Line (series line) : The line object.
Label (series label) : The label object.
Pivot
Holds all the values for a found pivot.
Fields:
Price (series float) : The price of the pivot.
BarIndex (series int) : The bar_index where the pivot occured.
Type (series int) : The type of the pivot (-1 = low, 1 = high).
ChangeOfCharacterBroken (series bool) : Sets to true if a change of character has happened.
BreakOfStructureBroken (series bool) : Sets to true if a break of structure has happened.
Structure
Holds all the values for the market structure.
Fields:
Length (series int) : Define the left and right lengths of the pivots used.
Type (series int) : Set the type of the market structure. Two types can be used, 'internal' and 'swing' (0 = internal, 1 = swing).
Trend (series int) : This will be set internally and can be -1 = downtrend, 1 = uptrend.
Source (series string) : Set the source for structural chandeg. Can be 'Close', 'High/low (aggresive)' (low in an uptrend) or 'High/low (passive)' (high in an uptrend).
EqualPivotsFactor (series float) : Set how the limits are for an equal pivot. This is a factor of the Average True Length (ATR) of length 14. If a low pivot is considered to be equal if it doesn't break the low pivot (is at a lower value) and is inside the previous low pivot + this limit.
ExtendEqualPivotsZones (series bool) : Set to true if you want the equal pivots zones to be extended.
ExtendEqualPivotsStyle (series string) : Set the style of equal pivot zones.
ExtendEqualPivotsColor (series color) : Set the color of equal pivot zones.
EqualHighs (array) : Holds the boxes for zones that contains equal highs.
EqualLows (array) : Holds the boxes for zones that contains equal lows.
BreakOfStructures (array) : Holds all the break of structures within the trend (before a change of character).
Pivots (array) : All the pivots in the current trend, added with the latest first, this is cleared when the trend changes.
AlertFrequency (series string) : set the frequency for alerts.
16. SMC Strategy with SL - low TimeframeOverview
The "SMC Strategy with SL - low Timeframe" is a comprehensive trading strategy that uses key concepts from Smart Money Theory to identify favorable areas in the market for buying or selling. This strategy takes advantage of price imbalances, support and resistance zones, and swing highs/lows to generate high-probability trade signals.
The key features of this strategy include:
Swing High/Low Analysis: Used to determine the Premium, Equilibrium, and Discount Zones.
Order Block Integration: An added layer of confluence to identify valid buy and sell signals.
Trend Direction Confirmation: Using a Simple Moving Average (SMA) to determine the overall trend.
Entry and Exit Rules: Based on price position relative to key zones and moving average, along with optional stop-loss and take-profit levels.
Detailed Description
Swing High and Swing Low Analysis
The script calculates Swing High and Swing Low based on the most recent price highs and lows over a specified look-back period (swingHighLength and swingLowLength, set to 8 by default).
It then derives the Premium, Equilibrium, and Discount Zones:
Premium Zone: Represents potential resistance, calculated based on recent swing highs.
Discount Zone: Represents potential support, calculated based on recent swing lows.
Equilibrium: The midpoint between Swing High and Swing Low, dividing the price range into Premium (above equilibrium) and Discount (below equilibrium) areas.
Zone Visualization
The strategy plots the Premium Zone (resistance) in red, the Discount Zone (support) in green, and the Equilibrium level in blue on the chart. This helps visually assess the current price relative to these important areas.
Simple Moving Average (SMA)
A 50-period Simple Moving Average (SMA) is added to help identify the trend direction.
Buy signals are valid only if the price is above the SMA, indicating an uptrend.
Sell signals are valid only if the price is below the SMA, indicating a downtrend.
Entry Rules
The script generates buy or sell signals when certain conditions are met:
A buy signal is triggered when:
Price is below the Equilibrium and within the Discount Zone.
Price is above the SMA.
The buy signal is further confirmed by the presence of an Order Block (recent lowest price area).
A sell signal is triggered when:
Price is above the Equilibrium and within the Premium Zone.
Price is below the SMA.
The sell signal is further confirmed by the presence of an Order Block (recent highest price area).
Order Block
The strategy defines Order Blocks as recent highs and lows within a look-back period (orderBlockLength set to 20 by default).
These blocks represent areas where large players (smart money) have historically been active, increasing the probability of the price reacting in these areas again.
Trade Management and Trade Direction
The user can set Trade Direction to either "Long Only," "Short Only," or "Both." This allows the strategy to adapt based on market conditions or trading preferences.
Based on the Trade Direction, the strategy either:
Closes open trades that are against new signals.
Allows only specific directional trades (either long or short).
Stop-loss levels are defined based on a fixed percentage (stop_loss_percent), which helps to manage risk and minimize losses.
Exit Rules
The strategy uses stop-loss levels for risk management.
A stop-loss price is set at a fixed percentage below the entry price for long positions or above the entry price for short positions.
When the price hits the defined stop-loss level, the trade is closed.
Liquidity Zones
The script identifies recent Swing Highs and Lows as potential liquidity zones. These are levels where price could react strongly, as they represent areas of interest for large traders.
The liquidity zones are plotted as crosses on the chart, marking areas where price may encounter significant buying or selling pressure.
Visual Feedback
The script uses visual markers (green for buy signals and red for sell signals) to indicate potential entries on the chart.
It also plots liquidity zones to help traders identify areas where stop hunts and liquidity grabs might occur.
Monthly Performance Dashboard
The script includes a performance tracking feature that displays monthly profit and loss metrics on the chart.
This dashboard allows the trader to see a visual representation of trading performance over time, providing insights into profitability and consistency.
The table shows profit or loss for each month and year, allowing the user to track the overall success of the strategy.
Key Benefits
Smart Money Concepts (SMC): This strategy incorporates SMC principles like order blocks and liquidity zones, which are used by institutional traders to determine potential market moves.
Zone Analysis: The use of Premium, Discount, and Equilibrium zones provides a solid framework for determining where to enter and exit trades based on price discounts or premiums.
Confluence: Signals are not taken in isolation. They are confirmed by factors like trend direction (SMA) and order blocks, providing greater trade accuracy.
Risk Management: By integrating stop-loss functionality, traders can manage their risks effectively.
Visual Performance Metrics: The monthly and yearly performance dashboard gives valuable feedback on how well the strategy has performed historically.
Practical Use
Buy in Discount Zone: Traders would be looking to buy when the price is discounted relative to its recent range and is above the SMA, indicating an overall uptrend.
Sell in Premium Zone: Conversely, traders would be looking to sell when the price is at a premium relative to its recent range and below the SMA, indicating an overall downtrend.
Order Block Confirmation: Ensures that buying or selling is supported by historical price behavior at significant levels, providing confidence that the market is likely to react at these areas.
This strategy is designed to help traders take advantage of price inefficiencies and areas where institutional traders are likely to be active, increasing the odds of successful trades. By leveraging Smart Money concepts and strong technical confluence, it aims to provide high-probability trade setups.
First 15-Min Candle Detector [With Breakout Alerts]Indicator: First 15-Minute Candle Detector
Purpose
This indicator helps traders by identifying and marking the high, low, and mid-point of the first 15-minute candle of the market session. It also provides visual aids and alerts for price breakouts above or below these levels, making it ideal for intraday trading strategies.
This script is suitable for traders focusing on early session momentum or reversal strategies.
Key Features
Market Start Customization: Configure the market start time (hour and minute) to align with your trading session or exchange timezone.
Visual Aids:
Horizontal lines to mark the High , Low , and Mid-point of the first 15-minute candle.
Background highlighting to identify the first 15-minute candle.
Configurable colors and line widths for clear visuals.
Breakout Alerts:
Real-time alerts for breakouts above the high or below the low of the first 15-minute candle.
Customizable alert messages.
Alerts configured using alertcondition .
Dynamic Adjustments:
Adapts dynamically to timeframes of 15 minutes or lower.
Resets and recalculates at the start of each new session.
Inputs and Configurations
Market Settings:
Market Start Hour: Default is 9.
Market Start Minute: Default is 30.
Visual Settings:
Enable/disable background highlighting.
Set colors for the background, high line, low line, and mid-line.
Adjust line width (1 to 5).
Toggle the visibility of the mid-line.
Alert Settings:
Enable breakout alerts.
Set custom alert messages for high and low breakouts.
How It Works
// First 15-Minute Candle Detection
The indicator monitors the first 15-minute candle after the market opens based on the configured start time. It records the high , low , and calculates the mid-point of this candle.
// Visual Markings
Horizontal lines are drawn at the high, low, and mid-point of the first 15-minute candle, extending to the right for the rest of the session.
// Breakout Detection
The indicator checks for price breakouts above the high or below the low of the first 15-minute candle and triggers alerts if enabled.
// Dynamic Reset
The indicator resets values and deletes previous session lines at the start of each new session.
Conditions and Alerts
Breakout Conditions:
High Breakout: The closing price exceeds the high of the first 15-minute candle.
Low Breakout: The closing price falls below the low of the first 15-minute candle.
Alert Triggers: Configurable alerts notify you of breakouts in real-time.
Use Cases
Intraday Traders: Ideal for early-session momentum or reversal strategies.
Breakout Traders: Helps identify entry points when price breaks key levels.
Visual Clarity: Simplifies tracking important session levels.
Limitations
Works only on 15-minute or lower timeframes.
Requires accurate market start time configuration.
Non-Psychological Levels🟩 Non-Psychological Levels is a structural analysis tool that segments price action into objective ranges, identifying Broken and Unbroken levels without relying on psychological or time-based assumptions. By emphasizing mechanically derived price behavior, it provides traders with a clear framework for analyzing support and resistance in a consistent and unbiased manner across various market conditions.
This indicator introduces a new approach to understanding market structure by focusing on price movement within defined segments, free from behavioral patterns, round numbers, or specific time intervals. While the indicator is time-agnostic in design, it works within the natural time progression of the chart, ensuring that segmentation aligns with the inherent structure of price movement. Broken levels, where price has breached a structural boundary, and Unbroken levels, which remain intact, are visualized with horizontal lines. These structural zones are complemented by dynamically boxed segments that contextualize both historical and ongoing price behavior.
By offering an objective perspective, the Non-Psychological Levels indicator complements psychology-based tools, helping traders explore market dynamics from multiple angles. When structural levels align with psychological zones, they reinforce critical price areas; when they differ, they provide opportunities to analyze price behavior from an alternative lens. This indicator is designed as both an educational framework and a practical tool, encouraging a deeper understanding of structural price behavior in technical analysis.
⭕ THEORY AND CONCEPT ⭕
The Non-Psychological Levels indicator is grounded in the principle of analyzing price behavior without reliance on psychological assumptions or time-based factors. Its primary purpose is to provide a structural framework for identifying support and resistance levels by focusing solely on price movement within mechanically defined segments. By removing external influences such as sentiment, time intervals, or market sessions, the indicator offers an unbiased lens through which traders can observe price dynamics.
Non-psychology, as defined here, refers to an approach that excludes behavioral and emotional patterns—like fear, greed, or herd mentality—from price analysis. Traditional tools often depend on these patterns to identify zones such as pivots or Fibonacci retracements, but these methods can be inconsistent in volatile markets. In contrast, the Non-Psychological Levels indicator focuses entirely on what price is doing, free from assumptions about trader behavior or external time constraints.
The indicator’s time-agnostic and mechanically driven design segments price action into consistent ranges, highlighting "Broken" levels (where price breaches structural boundaries) and "Unbroken" levels (where price holds). These structural zones remain unaffected by subjective or external influences, ensuring clarity and consistency across different markets and timeframes. By doing so, the indicator reveals a pure view of price structure, independent of psychological biases.
Importantly, the Non-Psychological Levels indicator is not intended to replace psychology-based tools but to complement them. When its structural levels align with psychological zones like round numbers or session highs/lows, the significance of these areas is reinforced. Conversely, when the levels differ, the contrast provides traders with alternative insights into market dynamics. This dual perspective—blending mechanical objectivity with behavioral analysis—enhances the depth and flexibility of market evaluation.
The following principles outline the theoretical foundation of the indicator and its unique contribution to structural price analysis:
Time-Agnostic Design : The indicator avoids reliance on time-based factors like daily opens, session intervals, or specific events. Instead, it segments price action using bar indexes, ensuring that structural levels are identified independently of external time variables. While the x-axis of a chart inherently represents time, this indicator abstracts away its influence, allowing traders to focus purely on price movement without the bias of temporal context.
Mechanical and Neutral Framework : Every calculation within the indicator is predetermined by a set of mechanical rules, ensuring no subjective input or interpretation affects the results. This objectivity guarantees that levels are derived solely from observed price behavior, providing a reliable framework that traders can trust to remain consistent across different assets, timeframes, and market conditions.
Broken and Unbroken Levels : Broken levels represent zones where price has breached a structural boundary, while Unbroken levels highlight areas where price has consistently respected its range. This distinction provides a clear and systematic method for identifying key support and resistance levels, offering insights into where future price interactions are most likely to occur.
Neutral Price Behavior : By dividing price action into equal segments, the indicator removes the influence of external factors like trader sentiment or psychological expectations. Each segment independently determines significant levels based purely on price action, enabling a structural view of the market that abstracts away behavioral or emotional biases.
Complement to Psychological Tools : While the indicator itself avoids behavioral assumptions, its levels can align with psychological zones like round numbers, pivots, or Fibonacci levels. When these structural and psychological levels overlap, it reinforces the importance of key areas, while divergences offer opportunities to examine price behavior from a new perspective.
Educational Value : The indicator encourages traders to explore the contrast between structural and psychological analysis. By introducing a framework that isolates price behavior from external influences, it challenges traditional methods of technical analysis, fostering deeper insights into market structure and behavior.
🔍 UNDERSTANDING STRUCTURAL LEVELS 🔍
The Non-Psychological Levels indicator offers a straightforward yet powerful way to understand market structure by segmenting price action into mechanically defined ranges. This segmentation highlights two key elements: "Broken" levels, where price has breached structural boundaries, and "Unbroken" levels, which remain intact and respected by price action. Together, these components create a framework for identifying potential areas of support and resistance.
Broken Levels : These are structural boundaries that price has surpassed, indicating areas where previous support or resistance failed. Broken levels often signal transitions in price behavior, such as shifts in momentum or the start of trending movements. They provide insight into zones where price has already tested and moved beyond.
Unbroken Levels : These levels remain intact within a given price segment, marking areas where price has consistently respected boundaries. Unbroken levels are particularly useful for identifying potential reversal points or zones of continued support or resistance. Their persistence across price action often makes them reliable indicators of market structure.
The visual segmentation of price action into distinct ranges allows traders to observe how price transitions between structural zones. For example:
- Clusters of Unbroken levels near the current price may suggest strong support or resistance, offering areas of interest for reversals or breakouts.
- Gaps between Unbroken levels highlight areas of price inefficiency or low interaction, which may become significant if revisited.
By focusing solely on structural price behavior, the Non-Psychological Levels indicator enables traders to analyze price independently of time or psychological factors. This makes it a valuable tool for understanding price dynamics objectively, whether used on its own or alongside other indicators.
🛠️ SETTINGS 🛠️
The Non-Psychological Levels indicator offers various customizable settings to help users tailor its visualization to their specific trading style and market conditions. These settings allow adjustments to sensitivity, level projection, and the source of price calculations (e.g., wicks or closing prices). Below, we outline each setting and its impact on the chart, along with examples to illustrate their functionality.
Custom Settings
Sensitivity : This setting adjusts the balance between detailed and broader structural levels by controlling the number of segments. Higher values result in more segments, revealing finer price levels, while lower values consolidate segments to highlight major price movements.
Source : Allows the user to choose between 'Wick' or 'Close' for detecting levels. Selecting 'Wick' emphasizes the absolute highs and lows of price action, while 'Close' focuses on closing prices within each segment.
Level Labels : Configures the visual representation of price levels, allowing users to toggle between price values, symbols (▲ ▼), or disabling labels altogether. This setting ensures clarity in how Broken and Unbroken levels are displayed on the chart.
Unbroken Levels : - - - Users can customize the colors and label styles for Unbroken levels, which highlight areas where price has respected structural boundaries.
Broken Levels : -|- Similar to Unbroken levels, users can specify the visual appearance of Broken levels, including color customization for Broken highs and lows. These settings help distinguish areas where price has breached a structural boundary.
Projection Options : This setting allows users to control how broken and unbroken levels are visually extended on the chart. The Future option projects lines forward to the right of the current price, showing potential future relevance of levels. The All option extends lines both forward and backward, providing a comprehensive view of how levels align with historical and potential future price action. The None option disables projections, keeping the chart focused solely on current segment levels without any extensions.
Segments : Includes options for customizing the segment visualization:
- Live Segment : Toggles the display of a highlighted box representing the current developing segment, helping users focus on ongoing price action.
- Boxes : Allows users to display filled boxes around each segment for additional visual emphasis.
- Segment Colors : Users can define separate colors for support (lower) and resistance (upper) segments, making it easier to interpret directional trends.
- Boundaries : Enables or disables vertical lines to mark segment boundaries, providing a clearer view of structural divisions.
Repaint : This setting allows users to enable or disable triangle labels within the live segment. When enabled, the triangles dynamically update to reflect real-time price behavior during the live bar but will repaint until the bar is fully confirmed. Disabling this option prevents the triangles from appearing during the live bar, reducing potential confusion as they may otherwise flash on and off during price updates. This setting ensures users can choose their preferred visualization while maintaining clarity in real-time analysis.
Color Settings : Offers extensive customization for all visual elements, including Broken and Unbroken levels, segment boundaries, and live segments. These settings ensure the indicator can adapt to individual preferences for chart readability.
🖼️ CHART EXAMPLES 🖼️
The following chart examples illustrate different configurations and features of the Non-Psychological Levels indicator. These examples highlight how the indicator’s settings influence the visualization of structural price behavior, helping traders understand its functionality in various scenarios.
Broken and Unbroken Levels : Orange prices are Broken HIghs. Blue prices are Broken Lows. Green and Red are Unbroken.
Boundaries : Enable Boundaries to visualize segments.
High Sensitivity Setting : A high sensitivity setting produces fewer segments and levels, emphasizing broader price ranges and major structural zones. This configuration is better suited for higher timeframes or identifying overarching trends.
Low Sensitivity Setting : A low sensitivity setting results in a greater number of segments and levels, offering a granular view of price structure. This configuration is ideal for analyzing detailed price movements on lower timeframes.
Live Segment with Triangles Enabled : This example shows the live segment box with triangle labels enabled. These triangles update dynamically during the live bar but may repaint until the bar is confirmed, helping traders observe real-time price behavior.
Broken and Unbroken Levels : This example highlights Broken levels (where price has breached structural boundaries and are drawn through subsequent price action) and Unbroken levels (where price has respected structural boundaries). These distinctions visually identify areas of potential support and resistance.
Broken and Unbroken Levels with Projection: All : This example demonstrates the "Project All" feature, where broken and unbroken levels are extended both forward and backward on the chart. This visualization highlights historical and potential future support and resistance zones, helping traders better understand how price interacts with these structural levels over time.
Segment Boxes with Boundaries : Filled boxes around individual segments visually distinguish each price interval, offering clarity in observing structural price transitions.
📊 SUMMARY 📊
The Non-Psychological Levels indicator provides a unique framework for analyzing structural price behavior through the identification of Broken and Unbroken levels. These levels act as a mechanical representation of support and resistance, independent of psychological biases or time-based factors. By focusing purely on price movement within defined segments, the indicator offers a neutral and consistent approach to understanding market dynamics.
This method complements traditional tools by providing an unbiased perspective. When structural levels align with psychological zones—such as round numbers or session-based highs and lows—they reinforce the significance of these areas as key price zones. When they diverge, the indicator introduces an alternative view, prompting further exploration of price behavior. This dual perspective enhances the depth of analysis by combining the mechanical and behavioral aspects of price action.
The Non-Psychological Levels indicator is not designed to generate trading signals or predict future price movements but serves as a visual and educational tool. Its adaptability across all markets and timeframes allows traders to integrate it into their broader strategies. By highlighting structural price dynamics, the indicator offers a fresh perspective on market analysis while remaining compatible with other technical tools.
⚙️ COMPATIBILITY AND LIMITATIONS ⚙️
Asset Compatibility :
The Non-Psychological Levels indicator is compatible with all asset classes, including cryptocurrencies, forex, stocks, and commodities. It can be applied to any chart or timeframe, making it a flexible tool for structural price analysis. Users should adjust the Sensitivity setting to ensure the segmentation aligns with the price behavior of the specific asset being analyzed. For instance, higher sensitivity values are more suitable for assets with large price ranges, while lower values work well for assets with tighter ranges.
Visual Range Dependency :
The indicator is optimized to perform calculations only within the visible range of the chart. This is a significant advantage, as it prevents unnecessary calculations and maintains efficient performance. However, because of this dependency, levels may appear to "recalculate" when the chart is zoomed in or out quickly or shifted abruptly. While this does not affect the integrity of the levels, it may cause a temporary lag as the indicator adjusts to the new visual range.
Persistence of Levels Beyond Visibility :
Even if levels are not visible on the chart due to zoom or scroll settings, they still exist in the background and are recalculated when revisited. This ensures that the structural price analysis remains consistent, regardless of the chart view.
Box Limitations in Pine Script :
The indicator is subject to Pine Script's inherent limitation of 500 boxes. This means that no more than 500 segments or level boxes can be drawn on the chart simultaneously. For most configurations, this limitation is mitigated by focusing on the visual range, but users employing very low sensitivity settings may exceed the limit. In such cases, only the most recent 500 boxes will be displayed, potentially omitting earlier segments.
Lag with Low Sensitivity Settings :
When sensitivity is set to a low value, the indicator creates many more segments, resulting in finer granularity and a higher number of boxes. While this provides detailed structural levels, it may increase the likelihood of exceeding Pine Script’s 500-box limit or cause a temporary lag when rendering a dense set of boxes over a wide visual range. Users should adjust sensitivity to balance detail with performance, especially on assets with high volatility or broad price ranges.
Live Segment Caution :
The live segment box updates in real time to reflect price movements as the segment is still developing. Since the segment high and segment low are not yet finalized, users should interpret this feature as a dynamic visualization of current price behavior rather than a definitive structural analysis. This ensures clarity during ongoing price action while maintaining the integrity of the indicator's framework.
Cross-Market Versatility :
The indicator’s time-agnostic and mechanical design ensures that it functions identically across all markets and timeframes. However, users should consider the unique characteristics of different markets when interpreting the results, as certain assets (e.g., highly volatile cryptocurrencies) may require sensitivity adjustments for optimal segmentation.
Visual Range Dependency: Levels recalculate efficiently within the chart's visible range but may lag temporarily when zooming or scrolling quickly.
These considerations ensure that the Non-Psychological Levels indicator remains robust and versatile while highlighting some inherent limitations of Pine Script and real-time recalculations. Users can mitigate these constraints by carefully adjusting sensitivity and understanding how the visual range dependency affects performance.
⚠️ DISCLAIMER ⚠️
The Non-Psychological Levels indicator is a visual analysis tool and is not designed as a predictive or trading signal indicator. Its primary purpose is to highlight structural price levels, providing an objective framework for understanding support and resistance within mechanically segmented price action.
The indicator operates within the visible range of the chart to ensure efficiency and adaptiveness, but this recalculation should not be interpreted as a forecast of future price behavior. While the structural levels may align with significant price zones in hindsight, they are purely a reflection of observed price dynamics and should not be used as standalone trading signals.
This indicator is intended as an educational and visual aid to complement other analysis methods. Users are encouraged to integrate it into a broader trading strategy and make adjustments to the settings based on their individual needs and market conditions.
🧠 BEYOND THE CODE 🧠
The Non-Psychological Levels indicator, like other xxattaxx indicators , is designed with education and community collaboration in mind. Its open-source nature encourages exploration, experimentation, and the development of new approaches to price analysis. By focusing on structural price behavior rather than psychological or time-based factors, this indicator introduces a fresh perspective for users to study.
Beyond its visual utility, the indicator serves as an educational framework for understanding the concept of non-psychological analysis. It offers traders an opportunity to explore price dynamics in a purely mechanical way, challenging conventional methods and fostering deeper insights into structural behavior. This approach is especially valuable for those interested in exploring new concepts or seeking alternative perspectives on market analysis.
Your comments, suggestions, and discussions are invaluable in shaping the future of this project. We actively encourage your feedback and contributions, which will directly help us refine and improve the Non-Psychological Levels indicator. We look forward to seeing the creative ways in which you use and enhance this tool. MVS
Volume/Price Divergence v2The "Volume/Price Divergence v2" indicator is designed to analyze the relationship between volume and price movements in a financial market. It helps traders identify potential divergences that may indicate a change in market trends. Here’s a breakdown of how it works:
### Key Components
1. **Volume Calculation**:
- **Buying Volume**: This is calculated based on the relationship between the closing price and the high/low range. If the closing price is closer to the low, more volume is attributed to buying.
- **Selling Volume**: Conversely, if the closing price is closer to the high, more volume is considered selling.
The formulas used are:
```pinescript
buyVolume = high == low ? 0 : volume * (close - low) / (high - low)
sellVolume = high == low ? 0 : volume * (high - close) / (high - low)
```
2. **Plotting Volume**:
- The total volume is plotted in red and buying volume is plotted in teal. This helps visualize the volume distribution during different price movements.
3. **Rate of Change (ROC)**:
- The indicator calculates the rate of change for both volume and price over a specified period. This allows traders to see how volume and price are changing relative to each other.
```pinescript
roc = source / source
roc2 = source2 / source2
```
4. **Volume/Price Divergence (VPD)**:
- The VPD is derived from the ratio of the ROC of volume to the ROC of price. This ratio helps identify divergences:
- A VPD significantly above 10 may indicate strong divergence, suggesting that price movements are not supported by volume.
- A VPD around 1 indicates that volume and price are moving in harmony.
5. **Horizontal Lines**:
- The indicator includes horizontal lines at levels 10 (high divergence) and 1 (low divergence), serving as visual cues for traders to assess the market's state.
### Interpretation
- **Divergence**: If price makes a new high but volume does not follow (or vice versa), it may signal a potential reversal or weakness in the trend.
- **Volume Trends**: Analyzing the buying vs. selling volume can provide insights into market sentiment, helping traders make informed decisions.
- **Potential for a Strong Move**: A high VPD during a breakout indicates that while volume is increasing, the price isn’t moving significantly, suggesting that a big price move could be imminent.
- **Caution Before Entry**: Traders should be aware that the lack of price movement relative to high volume may signal an impending volatility spike, which could lead to a rapid price change in either direction.
Overall, this indicator is useful for traders looking to gauge the strength of price movements and identify potential reversals or breakouts based on volume trends.
Multiple Naked LevelsPURPOSE OF THE INDICATOR
This indicator autogenerates and displays naked levels and gaps of multiple types collected into one simple and easy to use indicator.
VALUE PROPOSITION OF THE INDICATOR AND HOW IT IS ORIGINAL AND USEFUL
1) CONVENIENCE : The purpose of this indicator is to offer traders with one coherent and robust indicator providing useful, valuable, and often used levels - in one place.
2) CLUSTERS OF CONFLUENCES : With this indicator it is easy to identify levels and zones on the chart with multiple confluences increasing the likelihood of a potential reversal zone.
THE TYPES OF LEVELS AND GAPS INCLUDED IN THE INDICATOR
The types of levels include the following:
1) PIVOT levels (Daily/Weekly/Monthly) depicted in the chart as: dnPIV, wnPIV, mnPIV.
2) POC (Point of Control) levels (Daily/Weekly/Monthly) depicted in the chart as: dnPoC, wnPoC, mnPoC.
3) VAH/VAL STD 1 levels (Value Area High/Low with 1 std) (Daily/Weekly/Monthly) depicted in the chart as: dnVAH1/dnVAL1, wnVAH1/wnVAL1, mnVAH1/mnVAL1
4) VAH/VAL STD 2 levels (Value Area High/Low with 2 std) (Daily/Weekly/Monthly) depicted in the chart as: dnVAH2/dnVAL2, wnVAH2/wnVAL2, mnVAH1/mnVAL2
5) FAIR VALUE GAPS (Daily/Weekly/Monthly) depicted in the chart as: dnFVG, wnFVG, mnFVG.
6) CME GAPS (Daily) depicted in the chart as: dnCME.
7) EQUILIBRIUM levels (Daily/Weekly/Monthly) depicted in the chart as dnEQ, wnEQ, mnEQ.
HOW-TO ACTIVATE LEVEL TYPES AND TIMEFRAMES AND HOW-TO USE THE INDICATOR
You can simply choose which of the levels to be activated and displayed by clicking on the desired radio button in the settings menu.
You can locate the settings menu by clicking into the Object Tree window, left-click on the Multiple Naked Levels and select Settings.
You will then get a menu of different level types and timeframes. Click the checkboxes for the level types and timeframes that you want to display on the chart.
You can then go into the chart and check out which naked levels that have appeared. You can then use those levels as part of your technical analysis.
The levels displayed on the chart can serve as additional confluences or as part of your overall technical analysis and indicators.
In order to back-test the impact of the different naked levels you can also enable tapped levels to be depicted on the chart. Do this by toggling the 'Show tapped levels' checkbox.
Keep in mind however that Trading View can not shom more than 500 lines and text boxes so the indocator will not be able to give you the complete history back to the start for long duration assets.
In order to clean up the charts a little bit there are two additional settings that can be used in the Settings menu:
- Selecting the price range (%) from the current price to be included in the chart. The default is 25%. That means that all levels below or above 20% will not be displayed. You can set this level yourself from 0 up to 100%.
- Selecting the minimum gap size to include on the chart. The default is 1%. That means that all gaps/ranges below 1% in price difference will not be displayed on the chart. You can set the minimum gap size yourself.
BASIC DESCRIPTION OF THE INNER WORKINGS OF THE INDICTATOR
The way the indicator works is that it calculates and identifies all levels from the list of levels type and timeframes above. The indicator then adds this level to a list of untapped levels.
Then for each bar after, it checks if the level has been tapped. If the level has been tapped or a gap/range completely filled, this level is removed from the list so that the levels displayed in the end are only naked/untapped levels.
Below is a descrition of each of the level types and how it is caluclated (algorithm):
PIVOT
Daily, Weekly and Monthly levels in trading refer to significant price points that traders monitor within the context of a single trading day. These levels can provide insights into market behavior and help traders make informed decisions regarding entry and exit points.
Traders often use D/W/M levels to set entry and exit points for trades. For example, entering long positions near support (daily close) or selling near resistance (daily close).
Daily levels are used to set stop-loss orders. Placing stops just below the daily close for long positions or above the daily close for short positions can help manage risk.
The relationship between price movement and daily levels provides insights into market sentiment. For instance, if the price fails to break above the daily high, it may signify bearish sentiment, while a strong breakout can indicate bullish sentiment.
The way these levels are calculated in this indicator is based on finding pivots in the chart on D/W/M timeframe. The level is then set to previous D/W/M close = current D/W/M open.
In addition, when price is going up previous D/W/M open must be smaller than previous D/W/M close and current D/W/M close must be smaller than the current D/W/M open. When price is going down the opposite.
POINT OF CONTROL
The Point of Control (POC) is a key concept in volume profile analysis, which is commonly used in trading.
It represents the price level at which the highest volume of trading occurred during a specific period.
The POC is derived from the volume traded at various price levels over a defined time frame. In this indicator the timeframes are Daily, Weekly, and Montly.
It identifies the price level where the most trades took place, indicating strong interest and activity from traders at that price.
The POC often acts as a significant support or resistance level. If the price approaches the POC from above, it may act as a support level, while if approached from below, it can serve as a resistance level. Traders monitor the POC to gauge potential reversals or breakouts.
The way the POC is calculated in this indicator is by an approximation by analysing intrabars for the respective timeperiod (D/W/M), assigning the volume for each intrabar into the price-bins that the intrabar covers and finally identifying the bin with the highest aggregated volume.
The POC is the price in the middle of this bin.
The indicator uses a sample space for intrabars on the Daily timeframe of 15 minutes, 35 minutes for the Weekly timeframe, and 140 minutes for the Monthly timeframe.
The indicator has predefined the size of the bins to 0.2% of the price at the range low. That implies that the precision of the calulated POC og VAH/VAL is within 0.2%.
This reduction of precision is a tradeoff for performance and speed of the indicator.
This also implies that the bigger the difference from range high prices to range low prices the more bins the algorithm will iterate over. This is typically the case when calculating the monthly volume profile levels and especially high volatility assets such as alt coins.
Sometimes the number of iterations becomes too big for Trading View to handle. In these cases the bin size will be increased even more to reduce the number of iterations.
In such cases the bin size might increase by a factor of 2-3 decreasing the accuracy of the Volume Profile levels.
Anyway, since these Volume Profile levels are approximations and since precision is traded for performance the user should consider the Volume profile levels(POC, VAH, VAL) as zones rather than pin point accurate levels.
VALUE AREA HIGH/LOW STD1/STD2
The Value Area High (VAH) and Value Area Low (VAL) are important concepts in volume profile analysis, helping traders understand price levels where the majority of trading activity occurs for a given period.
The Value Area High/Low is the upper/lower boundary of the value area, representing the highest price level at which a certain percentage of the total trading volume occurred within a specified period.
The VAH/VAL indicates the price point above/below which the majority of trading activity is considered less valuable. It can serve as a potential resistance/support level, as prices above/below this level may experience selling/buying pressure from traders who view the price as overvalued/undervalued
In this indicator the timeframes are Daily, Weekly, and Monthly. This indicator provides two boundaries that can be selected in the menu.
The first boundary is 70% of the total volume (=1 standard deviation from mean). The second boundary is 95% of the total volume (=2 standard deviation from mean).
The way VAH/VAL is calculated is based on the same algorithm as for the POC.
However instead of identifying the bin with the highest volume, we start from range low and sum up the volume for each bin until the aggregated volume = 30%/70% for VAL1/VAH1 and aggregated volume = 5%/95% for VAL2/VAH2.
Then we simply set the VAL/VAH equal to the low of the respective bin.
FAIR VALUE GAPS
Fair Value Gaps (FVG) is a concept primarily used in technical analysis and price action trading, particularly within the context of futures and forex markets. They refer to areas on a price chart where there is a noticeable lack of trading activity, often highlighted by a significant price movement away from a previous level without trading occurring in between.
FVGs represent price levels where the market has moved significantly without any meaningful trading occurring. This can be seen as a "gap" on the price chart, where the price jumps from one level to another, often due to a rapid market reaction to news, events, or other factors.
These gaps typically appear when prices rise or fall quickly, creating a space on the chart where no transactions have taken place. For example, if a stock opens sharply higher and there are no trades at the prices in between the two levels, it creates a gap. The areas within these gaps can be areas of liquidity that the market may return to “fill” later on.
FVGs highlight inefficiencies in pricing and can indicate areas where the market may correct itself. When the market moves rapidly, it may leave behind price levels that traders eventually revisit to establish fair value.
Traders often watch for these gaps as potential reversal or continuation points. Many traders believe that price will eventually “fill” the gap, meaning it will return to those price levels, providing potential entry or exit points.
This indicator calculate FVGs on three different timeframes, Daily, Weekly and Montly.
In this indicator the FVGs are identified by looking for a three-candle pattern on a chart, signalling a discrete imbalance in order volume that prompts a quick price adjustment. These gaps reflect moments where the market sentiment strongly leans towards buying or selling yet lacks the opposite orders to maintain price stability.
The indicator sets the gap to the difference from the high of the first bar to the low of the third bar when price is moving up or from the low of the first bar to the high of the third bar when price is moving down.
CME GAPS (BTC only)
CME gaps refer to price discrepancies that can occur in charts for futures contracts traded on the Chicago Mercantile Exchange (CME). These gaps typically arise from the fact that many futures markets, including those on the CME, operate nearly 24 hours a day but may have significant price movements during periods when the market is closed.
CME gaps occur when there is a difference between the closing price of a futures contract on one trading day and the opening price on the following trading day. This difference can create a "gap" on the price chart.
Opening Gaps: These usually happen when the market opens significantly higher or lower than the previous day's close, often influenced by news, economic data releases, or other market events occurring during non-trading hours.
Gaps can result from reactions to major announcements or developments, such as earnings reports, geopolitical events, or changes in economic indicators, leading to rapid price movements.
The importance of CME Gaps in Trading is the potential for Filling Gaps: Many traders believe that prices often "fill" gaps, meaning that prices may return to the gap area to establish fair value.
This can create potential trading opportunities based on the expectation of gap filling. Gaps can act as significant support or resistance levels. Traders monitor these levels to identify potential reversal points in price action.
The way the gap is identified in this indicator is by checking if current open is higher than previous bar close when price is moving up or if current open is lower than previous day close when price is moving down.
EQUILIBRIUM
Equilibrium in finance and trading refers to a state where supply and demand in a market balance each other, resulting in stable prices. It is a key concept in various economic and trading contexts. Here’s a concise description:
Market Equilibrium occurs when the quantity of a good or service supplied equals the quantity demanded at a specific price level. At this point, there is no inherent pressure for the price to change, as buyers and sellers are in agreement.
Equilibrium Price is the price at which the market is in equilibrium. It reflects the point where the supply curve intersects the demand curve on a graph. At the equilibrium price, the market clears, meaning there are no surplus goods or shortages.
In this indicator the equilibrium level is calculated simply by finding the midpoint of the Daily, Weekly, and Montly candles respectively.
NOTES
1) Performance. The algorithms are quite resource intensive and the time it takes the indicator to calculate all the levels could be 5 seconds or more, depending on the number of bars in the chart and especially if Montly Volume Profile levels are selected (POC, VAH or VAL).
2) Levels displayed vs the selected chart timeframe. On a timeframe smaller than the daily TF - both Daily, Weekly, and Monthly levels will be displayed. On a timeframe bigger than the daily TF but smaller than the weekly TF - the Weekly and Monthly levels will be display but not the Daily levels. On a timeframe bigger than the weekly TF but smaller than the monthly TF - only the Monthly levels will be displayed. Not Daily and Weekly.
CREDITS
The core algorithm for calculating the POC levels is based on the indicator "Naked Intrabar POC" developed by rumpypumpydumpy (https:www.tradingview.com/u/rumpypumpydumpy/).
The "Naked intrabar POC" indicator calculates the POC on the current chart timeframe.
This indicator (Multiple Naked Levels) adds two new features:
1) It calculates the POC on three specific timeframes, the Daily, Weekly, and Monthly timeframes - not only the current chart timeframe.
2) It adds functionaly by calculating the VAL and VAH of the volume profile on the Daily, Weekly, Monthly timeframes .
Equal Highs and Lows {Reh's and Rel's }# Equal Highs and Lows {Reh's and Rel's} Indicator
## Overview
The "Equal Highs and Lows {Reh's and Rel's}" indicator is designed to identify and mark equal highs and lows on a price chart. It detects both exact and relative equal levels, draws lines connecting these levels, and optionally labels them. This tool can help traders identify potential support and resistance zones based on historical price levels.
## Key Features
1. **Exact and Relative Equality**: Detects both precise price matches and relative equality within a specified threshold.
2. **Customizable Appearance**: Allows users to adjust colors, line styles, and widths.
3. **Dynamic Line Management**: Automatically extends or removes lines based on ongoing price action.
4. **Labeling System**: Optional labels to identify types of equal levels (e.g., "Equal High", "REH/Equal High").
5. **Flexible Settings**: Adjustable parameters for lookback periods, maximum bars apart, and relative equality thresholds.
## User Inputs
### Appearance
- `lineColorHigh`: Color for lines marking equal highs (default: red)
- `lineColorLow`: Color for lines marking equal lows (default: green)
- `lineWidth`: Thickness of the lines (range: 1-5, default: 1)
- `lineStyle`: Style of the lines (options: Solid, Dash, Dotted)
- `showLabels`: Toggle to show or hide labels for equal highs and lows
### Settings
- `lookbackLength`: Number of bars to look back for finding equal highs and lows (default: 200)
- `maxBarsApart`: Maximum number of bars apart for equal highs/lows to be considered (range: 2-10, default: 5)
### Relative Equality
- `considerRelativeEquals`: Enable detection of relative equal highs and lows
- `thresholdIndex`: Maximum tick difference for relative equality in index instruments (range: 1-10, default: 2)
- `thresholdStocks`: Maximum tick difference for relative equality in stock instruments (range: 5-200, step: 5, default: 10)
## How It Works
The indicator scans historical price data to identify equal or relatively equal highs and lows. It draws lines connecting these levels and updates them as new price data comes in. Lines are extended if the level holds and removed if the price breaks through. The tool adapts to different market conditions by allowing adjustments to the equality thresholds for various instrument types.
## Practical Use
Traders can use this indicator to:
- Identify potential support and resistance levels
- Spot areas where price might react based on historical turning points
- Enhance their understanding of price structure and repetitive patterns
## Disclaimer
This indicator is provided as a tool to assist in identifying potential price levels of interest. It is not financial advice. Users should not rely solely on this or any single indicator for trading decisions. Always conduct thorough analysis, consider multiple factors, and be aware that past price behavior does not guarantee future results. All trading involves risk.
ATR Price Range Prediction V.2### ATR Price Range Prediction V.2
This script calculates the expected high and low prices for the current day based on the Average True Range (ATR) and displays the proportion of days where the daily range (high - low) is greater than or equal to the ATR. Additionally, the script provides an option to adjust the size of the text displayed in the top-right corner of the chart.
#### How It Works
1. **ATR Calculation**: The script calculates the ATR for a specified period (`atrPeriod`). ATR is a measure of volatility that represents the average range between the high and low prices over a specified number of periods.
2. **Expected High and Low Calculation**:
- **Expected High**: Calculated by adding the ATR value to the low price of the current day.
- **Expected Low**: Calculated by subtracting the ATR value from the high price of the current day.
3. **Proportion Calculation**: The script calculates the proportion of days where the daily range (high - low) is greater than or equal to the ATR value. This proportion is updated in real-time as new data comes in.
4. **Table Display**: Instead of displaying labels on each candle, the script shows the expected high, expected low, and the calculated proportion in a table located at the top-right corner of the chart. The size of the text in this table can be adjusted using the `Table Size` input.
5. **Color Coding**: The script changes the color of the bars to yellow if the daily range is greater than or equal to the ATR value, making it easy to identify these bars visually.
#### How to Use
- **ATR Period (`atrPeriod`)**: Adjust the period for the ATR calculation using the input parameter. The default value is 14.
- **Table Size (`tableSizeOption`)**: Choose the size of the text displayed in the table. Options include `tiny`, `small`, `normal`, `large`, and `huge`.
- **Expected High and Low**: Use the green and red lines to identify potential target prices or stop-loss levels for your trades. The green line represents the expected high, and the red line represents the expected low.
- **Proportion**: The table in the top-right corner of the chart shows the proportion of days where the daily range is greater than or equal to the ATR value. This can provide insight into the volatility of the asset.
- **Color Coding**: Yellow bars indicate days where the daily range is greater than or equal to the ATR value.
---
### ภาษาไทย
### ATR คาดการณ์ราคาสูงสุดและต่ำสุด พร้อมสัดส่วน
สคริปต์นี้คำนวณราคาสูงสุดและต่ำสุดที่คาดการณ์สำหรับวันปัจจุบันโดยอิงจากค่าเฉลี่ยช่วงที่แท้จริง (ATR) และแสดงสัดส่วนของวันที่ช่วงราคาต่อวัน (สูง - ต่ำ) มากกว่าหรือเท่ากับค่า ATR นอกจากนี้ยังมีตัวเลือกในการปรับขนาดข้อความที่แสดงในกล่องข้อความมุมขวาบนของกราฟ
#### วิธีการทำงาน
1. **การคำนวณ ATR**: สคริปต์คำนวณค่า ATR สำหรับช่วงเวลาที่กำหนด (`atrPeriod`) ATR เป็นมาตรวัดความผันผวนที่แสดงช่วงเฉลี่ยระหว่างราคาสูงสุดและต่ำสุดในช่วงเวลาที่กำหนด
2. **การคำนวณราคาสูงสุดและต่ำสุดที่คาดการณ์**:
- **ราคาสูงสุดที่คาดการณ์**: คำนวณโดยการบวกค่า ATR กับราคาต่ำสุดของวันปัจจุบัน
- **ราคาต่ำสุดที่คาดการณ์**: คำนวณโดยการลบค่า ATR จากราคาสูงสุดของวันปัจจุบัน
3. **การคำนวณสัดส่วน**: สคริปต์คำนวณสัดส่วนของวันที่ช่วงราคาต่อวัน (สูง - ต่ำ) มากกว่าหรือเท่ากับค่า ATR สัดส่วนนี้จะอัปเดตแบบเรียลไทม์เมื่อมีข้อมูลใหม่เข้ามา
4. **การแสดงผลในตาราง**: แทนที่จะแสดงป้ายกำกับบนแท่งเทียนแต่ละแท่ง สคริปต์จะแสดงราคาสูงสุดที่คาดการณ์ ราคาต่ำสุดที่คาดการณ์ และสัดส่วนที่คำนวณในตารางที่มุมขวาบนของกราฟ โดยสามารถปรับขนาดข้อความในตารางได้
5. **การใช้สี**: สคริปต์จะเปลี่ยนสีของแท่งเทียนเป็นสีเหลืองหากช่วงราคาต่อวันมากกว่าหรือเท่ากับค่า ATR ทำให้สามารถระบุแท่งเทียนเหล่านี้ได้ง่ายขึ้น
#### วิธีการใช้งาน
- **ATR Period (`atrPeriod`)**: ปรับช่วงเวลาสำหรับการคำนวณ ATR โดยใช้พารามิเตอร์การป้อนค่า ค่าเริ่มต้นคือ 14
- **Table Size (`tableSizeOption`)**: เลือกขนาดข้อความที่แสดงในตาราง ตัวเลือกได้แก่ `tiny`, `small`, `normal`, `large`, และ `huge`
- **ราคาสูงสุดและต่ำสุดที่คาดการณ์**: ใช้เส้นสีเขียวและสีแดงเพื่อระบุราคาที่เป็นเป้าหมายหรือระดับการหยุดขาดทุนสำหรับการซื้อขายของคุณ เส้นสีเขียวแสดงถึงราคาสูงสุดที่คาดการณ์และเส้นสีแดงแสดงถึงราคาต่ำสุดที่คาดการณ์
- **สัดส่วน**: ตารางที่มุมขวาบนของกราฟแสดงสัดส่วนของวันที่ช่วงราคาต่อวันมากกว่าหรือเท่ากับค่า ATR ซึ่งสามารถให้ข้อมูลเชิงลึกเกี่ยวกับความผันผวนของสินทรัพย์
- **การใช้สี**: แท่งเทียนสีเหลืองบ่งบอกถึงวันที่ช่วงราคาต่อวันมากกว่าหรือเท่ากับค่า ATR
_____
Stock WatchOverview
Watch list are very common in trading, but most of them simply provide the means of tracking a list of symbols and their current price. Then, you click through the list and perform some additional analysis individually from a chart setup. What this indicator is designed to do is provide a watch list that employs a high/low price range analysis in a table view across multiple time ranges for a much faster analysis of the symbols you are watching.
Discussion
The concept of this Stock Watch indicator is best understood when you think in terms of a 52 Week Range indication on many financial web sites. Taken a given symbol, what is the high and the low over a 52 week range and then determine where current price is within that range from a percentage perspective between 0% and 100%.
With this concept in mind, let's see how this Stock Watch indicator is meant to benefit.
There are four different H/L ranges relative to the chart's setting and a Scope property. Let's use a three month (3M) chart as our example and set the indicator's Scope = 4. A 3M chart provides three months of data in a single candle, now when we set the Scope = 4 we are stating that 1X is going to look over four candles for the high/low range.
The Scope property is used to determine how many candles it is to scan to determine the high/low range for the corresponding 1X, 3X, 5X and 10X periods. This is how different time ranges are put into perspective. Using a 3M chart with Scope = 4 would represent the following time windows:
- 1X = 3M * 4 is a 12 Months or 1 Year High/Low Range
- 3X = 3M * 4 * 3 is a 36 Months or 3 Years High/Low Range
- 5X = 3M * 4 * 5 is a 60 Months or 5 Years High/Low Range
- 10X = 3M * 4 * 10 is a 120 Months or 10 Years High/Low Range.
With these calculations, the indicator then determines where current price is within each of these High/Low ranges from a percentage perspective between 0% and 100%.
Once the 0% to 100% value is calculated, it then will shade the value according to a color gradient from red to green (or any other two colors you set the indictor to). This color shading really helps to interpret current price quickly.
The greater power to this range and color shading comes when you are able to see where price is according to price history across the multiple time windows. In this example, there is quick analysis across 1 Year, 3 Year, 5 Year and 10 Year windows.
Now let's further improve this quick analysis over 15 different stocks for which the indicator allows you to watch up to at any one time.
For value traders this is huge, because we're always looking for the bargains and we wait for price to be in the value range. Using this indicator helps to instantly see if price has entered a value range before we decide to do further analysis with other charting and fundamental tools.
The Code
The heart of all this is really very simple as you can see in the following code snippet. We're simply looking for the highest high and lowest low across the different scopes and calculating the percentage of the range where current price is for each symbol being watched.
scope = baseScope
watch1X = math.round(((watchClose - ta.lowest(watchLow, scope)) / (ta.highest(watchHigh, scope) - ta.lowest(watchLow, scope))) * 100, 0)
table.cell(tblWatch, columnId, 2, str.format("{0, number, #}%", watch1X), text_size = size.small, text_color = colorText, bgcolor = getBackColor(watch1X))
//3X Lookback
scope := baseScope * 3
watch3X = math.round(((watchClose - ta.lowest(watchLow, scope)) / (ta.highest(watchHigh, scope) - ta.lowest(watchLow, scope))) * 100, 0)
table.cell(tblWatch, columnId, 3, str.format("{0, number, #}%", watch3X), text_size = size.small, text_color = colorText, bgcolor = getBackColor(watch3X))
Conclusion
The example I've laid out here are for large time windows, because I'm a long term investor. However, keep in mind that this can work on any chart setting, you just need to remember that your chart's time period and scope work together to determine what 1X, 3X, 5X and 10X represent.
Let me try and give you one last scenario on this. Consider your chart is set for a 60 minute chart, meaning each candle represents 60 minutes of time and you set the Stock Watch indicator to a scope = 4. These settings would now represent the following and you would be watching up to 15 different stocks across these windows at one time.
1X = 60 minutes * 4 is 240 minutes or 4 hours of time.
3X = 60 minutes * 4 * 3 = 720 minutes or 12 hours of time.
5X = 60 minutes * 4 * 5 = 1200 minutes or 20 hours of time.
10X = 60 minutes * 4 * 10 = 2400 minutes or 40 hours of time.
I hope you find value in my contribution to the cause of trading, and if you have any comments or critiques, I would love to here from you in the comments.
Adaptive MFT Extremum Pivots [Elysian_Mind]Adaptive MFT Extremum Pivots
Overview:
The Adaptive MFT Extremum Pivots indicator, developed by Elysian_Mind, is a powerful Pine Script tool that dynamically displays key market levels, including Monthly Highs/Lows, Weekly Extremums, Pivot Points, and dynamic Resistances/Supports. The term "dynamic" emphasizes the adaptive nature of the calculated levels, ensuring they reflect real-time market conditions. I thank Zandalin for the excellent table design.
---
Chart Explanation:
The table, a visual output of the script, is conveniently positioned in the bottom right corner of the screen, showcasing the indicator's dynamic results. The configuration block, elucidated in the documentation, empowers users to customize the display position. The default placement is at the bottom right, exemplified in the accompanying chart.
The deliberate design ensures that the table does not obscure the candlesticks, with traders commonly situating it outside the candle area. However, the flexibility exists to overlay the table onto the candles. Thanks to transparent cells, the underlying chart remains visible even with the table displayed atop.
In the initial column of the table, users will find labels for the monthly high and low, accompanied by their respective numerical values. The default precision for these values is set at #.###, yet this can be adjusted within the configuration block to suit markets with varying degrees of volatility.
Mirroring this layout, the last column of the table presents the weekly high and low data. This arrangement is part of the upper half of the table. Transitioning to the lower half, users encounter the resistance levels in the first column and the support levels in the last column.
At the center of the table, prominently displayed, is the monthly pivot point. For a comprehensive understanding of the calculations governing these values, users can refer to the documentation. Importantly, users retain the freedom to modify these mathematical calculations, with the table seamlessly updating to reflect any adjustments made.
Noteworthy is the table's persistence; it continues to display reliably even if users choose to customize the mathematical calculations, providing a consistent and adaptable tool for informed decision-making in trading.
This detailed breakdown offers traders a clear guide to interpreting the information presented by the table, ensuring optimal use and understanding of the Adaptive MFT Extremum Pivots indicator.
---
Usage:
Table Layout:
The table is a crucial component of this indicator, providing a structured representation of various market levels. Color-coded cells enhance readability, with blue indicating key levels and a semi-transparent background to maintain chart visibility.
1. Utilizing a Table for Enhanced Visibility:
In presenting this wealth of information, the indicator employs a table format beneath the chart. The use of a table is deliberate and offers several advantages:
2. Structured Organization:
The table organizes the diverse data into a structured format, enhancing clarity and making it easier for traders to locate specific information.
3. Concise Presentation:
A table allows for the concise presentation of multiple data points without cluttering the main chart. Traders can quickly reference key levels without distraction.
4. Dynamic Visibility:
As the market dynamically evolves, the table seamlessly updates in real-time, ensuring that the most relevant information is readily visible without obstructing the candlestick chart.
5. Color Coding for Readability:
Color-coded cells in the table not only add visual appeal but also serve a functional purpose by improving readability. Key levels are easily distinguishable, contributing to efficient analysis.
Data Values:
Numerical values for each level are displayed in their respective cells, with precision defined by the iPrecision configuration parameter.
Configuration:
// User configuration: You can modify this part without code understanding
// Table location configuration
// Position: Table
const string iPosition = position.bottom_right
// Width: Table borders
const int iBorderWidth = 1
// Color configuration
// Color: Borders
const color iBorderColor = color.new(color.white, 75)
// Color: Table background
const color iTableColor = color.new(#2B2A29, 25)
// Color: Title cell background
const color iTitleCellColor = color.new(#171F54, 0)
// Color: Characters
const color iCharColor = color.white
// Color: Data cell background
const color iDataCellColor = color.new(#25456E, 0)
// Precision: Numerical data
const int iPrecision = 3
// End of configuration
The code includes a configuration block where users can customize the following parameters:
Precision of Numerical Table Data (iPrecision):
// Precision: Numerical data
const int iPrecision = 3
This parameter (iPrecision) sets the precision of the numerical values displayed in the table. The default value is 3, displaying numbers in #.### format.
Position of the Table (iPosition):
// Position: Table
const string iPosition = position.bottom_right
This parameter (iPosition) sets the position of the table on the chart. The default is position.bottom_right.
Color preferences
Table borders (iBorderColor):
// Color: Borders
const color iBorderColor = color.new(color.white, 75)
This parameters (iBorderColor) sets the color of the borders everywhere within the window.
Table Background (iTableColor):
// Color: Table background
const color iTableColor = color.new(#2B2A29, 25)
This is the background color of the table. If you've got cells without custom background color, this color will be their background.
Title Cell Background (iTitleCellColor):
// Color: Title cell background
const color iTitleCellColor = color.new(#171F54, 0)
This is the background color the title cells. You can set the background of data cells and text color elsewhere.
Text (iCharColor):
// Color: Characters
const color iCharColor = color.white
This is the color of the text - titles and data - within the table window. If you change any of the background colors, you might want to change this parameter to ensure visibility.
Data Cell Background: (iDataCellColor):
// Color: Data cell background
const color iDataCellColor = color.new(#25456E, 0)
The data cells have a background color to differ from title cells. You can configure this is a different parameter (iDataColor). You might even set the same color for data as for the titles if you will.
---
Mathematical Background:
Monthly and Weekly Extremums:
The indicator calculates the High (H) and Low (L) of the previous month and week, ensuring accurate representation of these key levels.
Standard Monthly Pivot Point:
The standard pivot point is determined based on the previous month's data using the formula:
PivotPoint = (PrevMonthHigh + PrevMonthLow + Close ) / 3
Monthly Pivot Points (R1, R2, R3, S1, S2, S3):
Additional pivot points are calculated for Resistances (R) and Supports (S) using the monthly data:
R1 = 2 * PivotPoint - PrevMonthLow
S1 = 2 * PivotPoint - PrevMonthHigh
R2 = PivotPoint + (PrevMonthHigh - PrevMonthLow)
S2 = PivotPoint - (PrevMonthHigh - PrevMonthLow)
R3 = PrevMonthHigh + 2 * (PivotPoint - PrevMonthLow)
S3 = PrevMonthLow - 2 * (PrevMonthHigh - PivotPoint)
---
Code Explanation and Interpretation:
The table displayed beneath the chart provides the following information:
Monthly Extremums:
(H) High of the previous month
(L) Low of the previous month
// Function to get the high and low of the previous month
getPrevMonthHighLow() =>
var float prevMonthHigh = na
var float prevMonthLow = na
monthChanged = month(time) != month(time )
if (monthChanged)
prevMonthHigh := high
prevMonthLow := low
Weekly Extremums:
(H) High of the previous week
(L) Low of the previous week
// Function to get the high and low of the previous week
getPrevWeekHighLow() =>
var float prevWeekHigh = na
var float prevWeekLow = na
weekChanged = weekofyear(time) != weekofyear(time )
if (weekChanged)
prevWeekHigh := high
prevWeekLow := low
Monthly Pivots:
Pivot: Standard pivot point based on the previous month's data
// Function to calculate the standard pivot point based on the previous month's data
getStandardPivotPoint() =>
= getPrevMonthHighLow()
pivotPoint = (prevMonthHigh + prevMonthLow + close ) / 3
Resistances:
R3, R2, R1: Monthly resistance levels
// Function to calculate additional pivot points based on the monthly data
getMonthlyPivotPoints() =>
= getPrevMonthHighLow()
pivotPoint = (prevMonthHigh + prevMonthLow + close ) / 3
r1 = (2 * pivotPoint) - prevMonthLow
s1 = (2 * pivotPoint) - prevMonthHigh
r2 = pivotPoint + (prevMonthHigh - prevMonthLow)
s2 = pivotPoint - (prevMonthHigh - prevMonthLow)
r3 = prevMonthHigh + 2 * (pivotPoint - prevMonthLow)
s3 = prevMonthLow - 2 * (prevMonthHigh - pivotPoint)
Initializing and Populating the Table:
The myTable variable initializes the table with a blue background, and subsequent table.cell functions populate the table with headers and data.
// Initialize the table with adjusted bgcolor
var myTable = table.new(position = iPosition, columns = 5, rows = 10, bgcolor = color.new(color.blue, 90), border_width = 1, border_color = color.new(color.blue, 70))
Dynamic Data Population:
Data is dynamically populated in the table using the calculated values for Monthly Extremums, Weekly Extremums, Monthly Pivot Points, Resistances, and Supports.
// Add rows dynamically with data
= getPrevMonthHighLow()
= getPrevWeekHighLow()
= getMonthlyPivotPoints()
---
Conclusion:
The Adaptive MFT Extremum Pivots indicator offers traders a detailed and clear representation of critical market levels, empowering them to make informed decisions. However, users should carefully analyze the market and consider their individual risk tolerance before making any trading decisions. The indicator's disclaimer emphasizes that it is not investment advice, and the author and script provider are not responsible for any financial losses incurred.
---
Disclaimer:
This indicator is not investment advice. Trading decisions should be made based on a careful analysis of the market and individual risk tolerance. The author and script provider are not responsible for any financial losses incurred.
Kind regards,
Ely
[KVA]K Stochastic IndicatorOriginal Stochastic Oscillator Formula:
%K=(C−Lowest Low)/(Highest High−Lowest Low)×100
Lowest Low refers to the lowest low of the past n periods.
Highest High refers to the highest high of the past n periods.
K Stochastic Indicator Formula:
%K=(Source−Lowest Source)/(Highest Source−Lowest Source)×100
Lowest Source refers to the lowest value of the chosen source over the past length periods.
Highest Source refers to the highest value of the chosen source over the past length periods.
Key Difference :
The original formula calculates %K using the absolute highest high and lowest low of the price over the past n periods.
The K Stochastic formula calculates %K using the highest and lowest values of a chosen source (which could be the close, open, high, or low) over the specified length periods.
So, if _src is set to something other than the high for the Highest Source or something other than the low for the Lowest Source, the K Stochastic will yield different results compared to the original formula which strictly uses the highest high and the lowest low of the price.
Impact on Traders :
Flexibility in Price Source :
By allowing the source (_src) to be customizable, traders can apply the Stochastic calculation to different price points (e.g., open, high, low, close, or even an average of these). This could provide a different perspective on market momentum and potentially offer signals that are more aligned with a trader's specific strategy.
Sensitivity to Price Action :
Changing the source from high/low to potentially less extreme values (like close or open) could result in a less volatile oscillator, smoothing out some of the extreme peaks and troughs and possibly offering a more filtered view of market conditions.
Customization of Periods :
The ability to adjust the length period offers traders the opportunity to fine-tune the sensitivity of the indicator to match their trading horizon. Shorter periods may provide earlier signals, while longer periods could filter out market noise.
Possibility of Applying the Indicator on Other Indicators :
Layered Technical Analysis :
The K Stochastic can be applied to other indicators, not just price. For example, it could be applied to a moving average to analyze its momentum or to indicators like RSI or MACD, offering a meta-analysis that studies the oscillator's behavior of other technical tools.
Creation of Composite Indicator s:
By applying the K Stochastic logic to other indicators, traders could create composite indicators that blend the characteristics of multiple indicators, potentially leading to unique signals that could offer an edge in certain market conditions.
Enhanced Signal Interpretation :
When applied to other indicators, the K Stochastic can help in identifying overbought or oversold conditions within those indicators, offering a different dimension to the interpretation of their output.
Overall Implications :
The KStochastic Indicator's modifications could lead to a more tailored application, giving traders the ability to adapt the tool to their specific trading style and analysis preferences.
By being applicable to other indicators, it broadens the scope of stochastic analysis beyond price action, potentially offering innovative ways to interpret data and make trading decisions.
The changes might also influence the trading signals, either by smoothing the oscillator's output to reduce noise or by altering the sensitivity to generate more or fewer signal
Including the additional %F line, which is unique to the K Stochastic Indicator, further expands the potential impacts and applications for traders:
Impact on Traders with the %F Line:
Triple Smoothing :
The %F line introduces a third level of smoothing, which could help in identifying longer-term trends and filtering out short-term fluctuations. This could be particularly useful for traders looking to avoid whipsaws and focus on more sustained movements.
Potential for Enhanced Confirmation :
The %F line might be used as a confirmation signal. For instance, if all three lines (%K, %D, and %F) are in agreement, a trader might consider this as a stronger signal to buy or sell, as opposed to when only the traditional two lines (%K and %D) are used.
Risk Management:
The additional line could be utilized for more sophisticated risk management strategies, where a trader might decide to scale in or out of positions based on the convergence or divergence of these lines.
Possibility of Applying the Indicator on Other Indicators with the %F Line:
Depth of Analysis :
When applied to other indicators, the %F line can provide an even deeper layer of analysis, perhaps identifying macro trends within the indicator it is applied to, which could go unnoticed with just the traditional two-line approach.
Refined Signal Strength Assessment :
The strength of signals from other indicators could be assessed by the position and direction of the %F line, providing an additional filter to evaluate the robustness of buy or sell signals.
Overall Implications with the %F Line :
The inclusion of the %F line in the K Stochastic Indicator enhances its utility as a tool for trend analysis and signal confirmation. It allows traders to potentially identify and act on more reliable trading opportunities.
This feature can enrich the trader's toolkit by providing a nuanced view of momentum and trend strength, which can be particularly valuable in volatile or choppy markets.
For those applying the K Stochastic to other indicators, the %F line could be integral in creating a multi-tiered analysis strategy, potentially leading to more sophisticated interpretations and decisions.
The presence of the %F line adds a dimension of depth to the analysis possible with the K Stochastic Indicator, making it a versatile tool that could be tailored to a variety of trading styles and objectives. However, as with any indicator, the additional complexity requires careful study and back-testing to ensure its signals are understood and actionable within the context of a comprehensive trading plan.
Opening Range & Daily and Weekly PivotsThis script is for a combination of two indicators: an Opening Range Breakout (ORB) indicator and a daily/weekly high/low pivot indicator. The ORB indicator displays the opening range (the high and low of the first X minutes of the trading day, where X is a user-defined parameter) as two lines on the chart. If the price closes above the ORB high, the script triggers an alert with the message "Price has broken above the opening range." Similarly, if the price closes below the ORB low, the script triggers an alert with the message "Price has broken below the opening range."
The daily/weekly high/low pivot indicator plots the previous day's high and low as well as the previous week's high and low. If the current price closes above yesterday's high or last week's high, the script triggers an alert with the messages "We are now trading higher than the previous daily high" and "We are now trading higher than the last week high", respectively. If the current price closes below yesterday's low or last week's low, the script triggers an alert with the messages "We are now trading lower than the previous daily low" and "We are now trading lower than the last week low", respectively.
In addition to the visual representation on the chart, the script also triggers alerts when the price crosses any of these levels. These alerts are intended to help traders make decisions about entering or exiting trades based on the price action relative to key levels of support and resistance.
ATR PivotsThe "ATR Pivots" script is a technical analysis tool designed to help traders identify key levels of support and resistance on a chart. The indicator uses various metrics such as the Average True Range (ATR), Daily True Range ( DTR ), Daily True Range Percentage (DTR%), Average Daily Range (ADR), Previous Day High ( PDH ), and Previous Day Low ( PDL ) to provide a comprehensive picture of the volatility and movement of a security. The script also includes an EMA cloud and 200 EMA for trend identification and a 1-minute ATR scalping strategy for traders to make informed trading decisions.
ATR Detail:-
The ATR is a measure of the volatility of a security over a given period of time. It is calculated by taking the average of the true range (the difference between the high and low of a security) over a set number of periods. The user can input the number of periods (ATR length) to be used for the ATR calculation. The script also allows the user to choose whether to use the current close or not for the calculation. The script calculates various levels of support and resistance based on the relationship between the security's range ( high-low ) and the ATR. The levels are calculated by multiplying the ATR by different Fibonacci ratios (0.236, 0.382, 0.5, 0.618, 0.786, 1.000) and then adding or subtracting the result from the previous close. The script plots these levels on the chart, with the -100 level being the most significant level. The user also has an option to choose whether to plot all Fibonacci levels or not.
DTR and DTR% Detail:-
The Daily True Range Percentage (DTR%) is a metric that measures the daily volatility of a security as a percentage of its previous close. It is calculated by dividing the Daily True Range ( DTR ) by the previous close. DTR is the range between the current period's high and low and gives a measure of the volatility of the security on a daily basis. DTR% can be used as an indicator of the percentage of movement of the security on a daily basis. In this script, DTR% is used in combination with other metrics such as the Average True Range (ATR) and Fibonacci ratios to calculate key levels of support and resistance for the security. The idea behind using DTR% is that it can help traders to better understand the daily volatility of the security and make more informed trading decisions.
For example, if a security has a DTR% of 2%, it suggests that the security has a relatively low level of volatility and is less likely to experience significant price movements on a daily basis. On the other hand, if a security has a DTR% of 10%, it suggests that the security has a relatively high level of volatility and is more likely to experience significant price movements on a daily basis.
ADR:-
The script then calculates the ADR (Average Daily Range) which is the average of the daily range of the security, using the formula (Period High - Period Low) / ATR Length. This gives a measure of the average volatility of the security on a daily basis, which can be useful for determining potential levels of support and resistance .
PDH /PDL:-
The script also calculates PDH (Previous Day High) and PDL (Previous Day Low) which are the High and low of the previous day of the security. This gives a measure of the previous day's volatility and movement, which can be useful for determining potential levels of support and resistance .
EMA Cloud and 200 EMA Detail:-
The EMA cloud is a technical analysis tool that helps traders identify the trend of the market by comparing two different exponential moving averages (EMAs) of different lengths. The cloud is created by plotting the fast EMA and the slow EMA on the chart and filling the space between them. The user can input the length of the fast and slow EMA , and the script will calculate and plot these EMAs on the chart. The space between the two EMAs is then filled with a color that represents the trend, with green indicating a bullish trend and red indicating a bearish trend . Additionally, the script also plots a 200 EMA , which is a commonly used long-term trend indicator. When the fast EMA is above the slow EMA and the 200 EMA , it is considered a bullish signal, indicating an uptrend. When the fast EMA is below the slow EMA and the 200 EMA , it is considered a bearish signal, indicating a downtrend. The EMA cloud and 200 EMA can be used together to help traders identify the overall trend of the market and make more informed trading decisions.
1 Minute ATR Scalping Strategy:-
The script also includes a 1-minute ATR scalping strategy that can be used by traders looking for quick profits in the market. The strategy involves using the ATR levels calculated by the script as well as the EMA cloud and 200 EMA to identify potential buy and sell opportunities. For example, if the 1-minute ATR is above 11 in NIFTY and the EMA cloud is bullish , the strategy suggests buying the security. Similarly, if the 1-minute ATR is above 30 in BANKNIFTY and the EMA cloud is bullish , the strategy suggests buying the security.
Inside Candle:-
The Inside Candle is a price action pattern that occurs when the current candle's high and low are entirely within the range of the previous candle's high and low. This pattern indicates indecision or consolidation in the market and can be a potential sign of a trend reversal. When used in the 15-minute chart, traders can look for Inside Candle patterns that occur at key levels of support or resistance. If the Inside Candle pattern occurs at a key level and the price subsequently breaks out of the range of the Inside Candle, it can be a signal to enter a trade in the direction of the breakout. Traders can also use the Inside Candle pattern to trade in a tight range, or to reduce their exposure to a current trend.
Risk Management:-
As with any trading strategy, it is important to practice proper risk management when using the ATR Pivots script and the 1-minute ATR scalping strategy. This may include setting stop-loss orders, using appropriate position sizing, and diversifying your portfolio. It is also important to note that past performance is not indicative of future results and that the script and strategy provided are for educational purposes only.
In conclusion, the "ATR Pivots" script is a powerful tool that can help traders identify key levels of support and resistance , as well as trend direction. The additional metrics such as DTR , DTR%, ADR, PDH , and PDL provide a more comprehensive picture of the volatility and movement of the security, making it easier for traders to make better trading decisions. The inclusion of the EMA cloud and 200 EMA for trend identification, and the 1-minute ATR scalping strategy for quick profits can further enhance a trader's decision-making process. However, it is important to practice proper risk management and understand that past performance is not indicative of future results.
Special thanks to satymahajan for the idea of clubbing Average True Range with Fibonacci levels.
Session candles & reversals / quantifytools— Overview
Like traditional candles, session based candles are a visualization of open, high, low and close values, but based on session time periods instead of typical timeframes such as daily or weekly. Session candles are formed by fetching price at session start (open), highest price during session (high), lowest price during session (low) and price at session end (close). On top of candles, session based moving average is formed and session reversals detected. Session reversals are also backtested, using win rate and magnitude metrics to better understand what to expect from session reversals and which ones have historically performed the best.
By default, following session time periods are used:
Session #1: London (08:00 - 17:00, UTC)
Session #2: New York (13:00 - 22:00, UTC)
Session #3: Sydney (21:00 - 06:00, UTC)
Session #4: Tokyo (00:00 - 09:00, UTC)
Session time periods can be changed via input menu.
— Reversals
Session reversals are patterns that show a rapid change in direction during session. These formations are more familiarly known as wicks or engulfing candles. Following criteria must be met to qualify as a session reversal:
Wick up:
Lower high, lower low, close >= 65% of session range (0% being the very low, 100% being the very high) and open >= 40% of session range.
Wick down:
Higher high, higher low, close <= 35% of session range and open <= 60% of session range.
Engulfing up:
Higher high, lower low, close >= 65% of session range.
Engulfing down:
Higher high, lower low, close <= 35% of session range.
Session reversals are always based on prior corresponding session , e.g. to qualify as a NY session engulfing up, NY session must have a higher high and lower low relative to prior NY session , not just any session that has taken place in between. Session reversals should be viewed the same way wicks/engulfing formations are viewed on traditional timeframe based candles. Essentially, wick reversals (light green/red labels) tell you most of the motion during session was reversed. Engulfing reversals (dark green/red labels) on the other hand tell you all of the motion was reversed and new direction set.
— Backtesting
Session reversals are backtested using win rate and magnitude metrics. A session reversal is considered successful when next corresponding session closes higher/lower than session reversal close . Win rate is formed by dividing successful session reversal count with total reversal count, e.g. 5 successful reversals up / 10 reversals up total = 50% win rate. Win rate tells us what are the odds (historically) of session reversal producing a clean supporting move that was persistent enough to close that way too.
When a session reversal is successful, its magnitude is measured using percentage increase/decrease from session reversal close to next corresponding session high/low . If NY session closes higher than prior NY session that was a reversal up, the percentage increase from prior session close (reversal close) to current session high is measured. If NY session closes lower than prior NY session that was a reversal down, the percentage decrease from prior session close to current session low is measured.
Average magnitude is formed by dividing all percentage increases/decreases with total reversal count, e.g. 10 total reversals up with 1% increase each -> 10% net increase from all reversals -> 10% total increase / 10 total reversals up = 1% average magnitude. Magnitude metric supports win rate by indicating the depth of successful session reversal moves.
To better understand the backtesting calculations and more importantly to verify their validity, backtesting visuals for each session can be plotted on the chart:
All backtesting results are shown in the backtesting panel on top right corner, with highest win rates and magnitude metrics for both reversals up and down marked separately. Note that past performance is not a guarantee of future performance and session reversals as they are should not be viewed as a complete strategy for long/short plays. Always make sure reversal count is sufficient to draw reliable conclusions of performance.
— Session moving average
Users can form a session based moving average with their preferred smoothing method (SMA , EMA , HMA , WMA , RMA) and length, as well as choose which sessions to include in the moving average. For example, a moving average based on New York and Tokyo sessions can be formed, leaving London and Sydney completely out of the calculation.
— Visuals
By default, script hides your candles/bars, although in the case of candles borders will still be visible. Switching to bars/line will make your regular chart visuals 100% hidden. This setting can be turned off via input menu. As some sessions overlap, each session candle can be separately offsetted forward, clearing the overlaps. Users can also choose which session candles to show/hide.
Session periods can be highlighted on the chart as a background color, applicable to only session candles that are activated. By default, session reversals are referred to as L (London), N (New York), S (Sydney) and T (Tokyo) in both reversal labels and backtesting table. By toggling on "Numerize sessions", these will be replaced with 1, 2, 3 and 4. This will be helpful when using a custom session that isn't any of the above.
Visual settings example:
Session candles are plotted in two formats, using boxes and lines as well as plotcandle() function. Session candles constructed using boxes and lines will be clear and much easier on the eyes, but will apply only to first 500 bars due to Tradingview related limitations. Rest of the session candles go back indefinitely, but won't be as clean:
All colors can be customized via input menu.
— Timeframe & session time period considerations
As a rule of thumb, session candles should be used on timeframes at or below 1H, as higher timeframes might not match with session period start/end, leading to incorrect plots. Using 1 hour timeframe will bring optimal results as greatest amount historical data is available without sacrificing accuracy of OHLC values. If you are using a custom session that is not based on hourly period (e.g. 08:00 - 15:00 vs. 08.00 - 15.15) make sure you are using a timeframe that allows correct plots.
Session time periods applied by default are rough estimates and might be out of bounds on some charts, like NYSE listed equities. This is rarely a problem on assets that have extensive trading hours, like futures or cryptocurrency. If a session is out of bounds (asset isn't traded during the set session time period) the script won't plot given session candle and its backtesting metrics will be NA. This can be fixed by changing the session time periods to match with given asset trading hours, although you will have to consider whether or not this defeats the purpose of having candles based on sessions.
— Practical guide
Whether based on traditional timeframes or sessions, reversals should always be considered as only one piece of evidence of price turning. Never react to them without considering other factors that might support the thesis, such as levels and multi-timeframe analysis. In short, same basic charting principles apply with session candles that apply with normal candles. Use discretion.
Example #1 : Focusing efforts on session reversals at distinct support/resistance levels
A reversal against a level holds more value than a reversal by itself, as you know it's a placement where liquidity can be expected. A reversal serves as a confirming reaction for this expectation.
Example #2 : Focusing efforts on highest performing reversals and avoiding poorly performing ones
As you have data backed evidence of session reversal performance, it makes sense to focus your efforts on the ones that perform best. If some session reversal is clearly performing poorly, you would want to avoid it, since there's nothing backing up its validity.
Example #3 : Reversal clusters
Two is better than one, three is better than two and so on. If there are rapid changes in direction within multiple sessions consecutively, there's heavier evidence of a dynamic shift in price. In such case, it makes sense to hold more confidence in price halting/turning.
PivotsLibrary "Pivots"
This Library focuses in functions related to pivot highs and lows and some of their applications (i.e. divergences, zigzag, harmonics, support and resistance...)
pivots(srcH, srcL, length) Delivers series of pivot highs, lows and zigzag.
Parameters:
srcH : Source series to look for pivot highs. Stricter applications might source from 'close' prices. Oscillators are also another possible source to look for pivot highs and lows. By default 'high'
srcL : Source series to look for pivot lows. By default 'low'
length : This value represents the minimum number of candles between pivots. The lower the number, the more detailed the pivot profile. The higher the number, the more relevant the pivots. By default 10
Returns:
zigzagArray(pivotHigh, pivotLow) Delivers a Zigzag series based on alternating pivots. Ocasionally this line could paint a few consecutive lows or highs without alternating. That happens because it's finding a few consecutive Higher Highs or Lower Lows. If to use lines entities instead of series, that could be easily avoided. But in this one, I'm more interested outputting series rather than painting/deleting line entities.
Parameters:
pivotHigh : Pivot high series
pivotLow : Pivot low series
Returns:
zigzagLine(srcH, srcL, colorLine, widthLine) Delivers a Zigzag based on line entities.
Parameters:
srcH : Source series to look for pivot highs. Stricter applications might source from 'close' prices. Oscillators are also another possible source to look for pivot highs and lows. By default 'high'
srcL : Source series to look for pivot lows. By default 'low'
colorLine : Color of the Zigzag Line. By default Fuchsia
widthLine : Width of the Zigzag Line. By default 4
Returns: Zigzag printed on screen
divergence(h2, l2, h1, l1, length) Calculates divergences between 2 series
Parameters:
h2 : Series in which to locate divs: Highs
l2 : Series in which to locate divs: Lows
h1 : Series in which to locate pivots: Highs. By default high
l1 : Series in which to locate pivots: Lows. By default low
length : Length used to calculate Pivots: By default 10
Returns:
Modified ATR Indicator [KL]Modified Average True Range (ATR) Indicator
This indicator displays the ATR with relative highs and relative lows statistically determined.
What is ATR:
To know what ATR is, we need to understand what a True Range (TR) is.
- TR at a given bar is the highest distance between points: a) High vs low, b) High vs Close, and c) Low vs Close.
- ATR is the moving average of TRs over a predefined lookback period; 14 is the most commonly used.
- ATR can be mathematically expressed as:
Why is ATR Important
ATR often used to measure volatility; high volatility is indicated by high ATR, vice versa for low. This is a versatile tool allowing traders to determine entry/exit points, as well as the size of stop losses and when to take profits relative to it.
This is an opinion: Through observations, I have noticed that ATR can also indirectly tell us the levels of relative volume. This intuitively makes sense because in order to increase length of TR, high amounts of capital inflow/outflow is required (graphically speaking, high volume is required in order to make lengths of candle sticks longer). The relationship between ATR and relative volume should hold unless the market is illiquid to the extreme that there is no relationship between volume and price.
That said, knowing the relative lows/highs of ATR is very useful. It can be interpreted as:
- Relative high = high volatility, usually during sell offs
- Relative low = decreasing volume, could indicate price consolidation
Instead of arbitrarily determining whether ATR is high/low, this indicator will determine relative highs and relative lows using a simple statistical model.
How relative high/low is determined by this model
This indicator applies two-tailed hypothesis testing to test whether ATR (ie. say lookback of 14) has greatly deviated from a larger sample size (ie. lookback of 50). Assuming ATR is normally distributed and variance is known, then test statistic (z) can be used to determine whether ATR14 is within the critical area under Null Hypothesis: ATR14 == ATR50. If z falls below/above the left/right critical values (ie. 1.645 for a 90% confidence interval), then this is shown by the indicator through using different colors to plot the ATR line.
Double Top/BottomHere is an attempt to identify double top/bottom based on pivot high/lows.
Logic is simple.
Double Bottom:
Last two pivot High Lows make W shape
Last Pivot Low is higher than previous Last Pivot Low.
Last Pivot High is lower than previous last Pivot High.
Price has not gone below Last Pivot Low
Price breaks out of last Pivot High to complete W shape
Double Top:
Last two pivot High Lows make M shape
Last Pivot Low is higher than previous Last Pivot Low.
Last Pivot High is lower than previous last Pivot High.
Price has not gone above Last Pivot High
Price breaks out of last Pivot Low to complete M shape
Prameters:
Parameters PvtLenL , PvtLenR and waitforclose determines pivot points.
FilterPivots clears repetitive pivots formed in same direction before calculating the possible double top/bottom.
For example:
CheckForAbsolutePeaks and AbsolutePeakLoopback works together. When CheckForAbsolutePeaks is enabled, script only generates double bottom or top signal if previous last pivot is absolute high or low for AbsolutePeakLoopback periods.
ConsiderMovingAverage does two things. First, it makes sure that fast moving average and slow moving averages are aligned with the direction we are going to forecast. Second, it makes sure that the crossover happend recently and with last BarCrossoverLimit bars. For example, to call it double bottom, Fast MA should be higher than Slow MA and crossover of FastMA above SlowMA should have happened in last 10 bars (BarCrossoverLimit)
PivotDisplayMode can be Actual, Filtered or None. Actual will display all pivot high low generated. Filtered will only display last 5 pivot high and pivot lows which are filtered . That means, it will remove the repetitive pivots formed without making pivots on the other side.
Welcome and suggestions and feedbacks.
Relative Volume at Time█ OVERVIEW
This indicator calculates relative volume, which is the ratio of present volume over an average of past volume.
It offers two calculation modes, both using a time reference as an anchor.
█ CONCEPTS
Calculation modes
The simplest way to calculate relative volume is by using the ratio of a bar's volume over a simple moving average of the last n volume values.
This indicator uses one of two, more subtle ways to calculate both values of the relative volume ratio: current volume:past volume .
The two calculations modes are:
1 — Cumulate from Beginning of TF to Current Bar where:
current volume = the cumulative volume since the beginning of the timeframe unit, and
past volume = the mean of volume during that same relative period of time in the past n timeframe units.
2 — Point-to-Point Bars at Same Offset from Beginning of TF where:
current volume = the volume on a single chart bar, and
past volume = the mean of volume values from that same relative bar in time from the past n timeframe units.
Timeframe units
Timeframe units can be defined in three different ways:
1 — Using Auto-steps, where the timeframe unit automatically adjusts to the timeframe used on the chart:
— A 1 min timeframe unit will be used on 1sec charts,
— 1H will be used for charts at 1min and less,
— 1D will be used for other intraday chart timeframes,
— 1W will be used for 1D charts,
— 1M will be used for charts at less than 1M,
— 1Y will be used for charts at greater or equal than 1M.
2 — As a fixed timeframe that you define.
3 — By time of day (for intraday chart timeframes only), which you also define. If you use non-intraday chart timeframes in this mode, the indicator will switch to Auto-steps.
Relative Relativity
A relative volume value of 1.0 indicates that current volume is equal to the mean of past volume , but how can we determine what constitutes a high relative volume value?
The traditional way is to settle for an arbitrary threshold, with 2.0 often used to indicate that relative volume is worthy of attention.
We wanted to provide traders with a contextual method of calculating threshold values, so in addition to the conventional fixed threshold value,
this indicator includes two methods of calculating a threshold channel on past relative volume values:
1 — Using the standard deviation of relative volume over a fixed lookback.
2 — Using the highs/lows of relative volume over a variable lookback.
Channels calculated on relative volume provide meta-relativity, if you will, as they are relative values of relative volume.
█ FEATURES
Controls in the "Display" section of inputs determine what is visible in the indicator's pane. The next "Settings" section is where you configure the parameters used in the calculations. The "Column Coloring Conditions" section controls the color of the columns, which you will see in three of the five display modes available. Whether columns are plotted or not, the coloring conditions also determine when markers appear, if you have chosen to show the markers in the "Display" section. The presence of markers is what triggers the alerts configured on this indicator. Finally, the "Colors" section of inputs allows you to control the color of the indicator's visual components.
Display
Five display modes are available:
• Current Volume Columns : shows columns of current volume , with past volume displayed as an outlined column.
• Relative Volume Columns : shows relative volume as a column.
• Relative Volume Columns With Average : shows relative volume as a column, with the average of relative volume.
• Directional Relative Volume Average : shows a line calculated using the average of +/- values of relative volume.
The positive value of relative volume is used on up bars; its negative value on down bars.
• Relative Volume Average : shows the average of relative volume.
A Hull moving average is used to calculate the average used in the three last display modes.
You can also control the display of:
• The value or relative volume, when in the first three display modes. Only the last 500 values will be shown.
• Timeframe transitions, shown in the background.
• A reminder of the active timeframe unit, which appears to the right of the indicator's last bar.
• The threshold used, which can be a fixed value or a channel, as determined in the next "Settings" section of inputs.
• Up/Down markers, which appear on transitions of the color of the volume columns (determined by coloring conditions), which in turn control when alerts are triggered.
• Conditions of high volatility.
Settings
Use this section of inputs to change:
• Calculation mode : this is where you select one of this indicator's two calculation modes for current volume and past volume , as explained in the "Concepts" section.
• Past Volume Lookback in TF units : the quantity of timeframe units used in the calculation of past volume .
• Define Timeframes Units Using : the mode used to determine what one timeframe unit is. Note that when using a fixed timeframe, it must be higher than the chart's timeframe.
Also, note that time of day timeframe units only work on intraday chart timeframes.
• Threshold Mode : Five different modes can be selected:
— Fixed Value : You can define the value using the "Fixed Threshold" field below. The default value is 2.0.
— Standard Deviation Channel From Fixed Lookback : This is a channel calculated using the simple moving average of relative volume
(so not the Hull moving average used elsewhere in the indicator), plus/minus the standard deviation multiplied by a user-defined factor.
The lookback used is the value of the "Channel Lookback" field. Its default is 100.
— High/Low Channel From Beginning of TF : in this mode, the High/Low values reset at the beginning of each timeframe unit.
— High/Low Channel From Beginning of Past Volume Lookback : in this mode, the High/Low values start from the farthest point back where we are calculating past volume ,
which is determined by the combination of timeframe units and the "Past Volume Lookback in TF units" value.
— High/Low Channel From Fixed Lookback : In this mode the lookback is fixed. You can define the value using the "Channel Lookback" field. The default value is 100.
• Period of RelVol Moving Average : the period of the Hull moving average used in the "Directional Relative Volume Average" and the "Relative Volume Average".
• High Volatility is defined using fast and slow ATR periods, so this represents the volatility of price.
Volatility is considered to be high when the fast ATR value is greater than its slow value. Volatility can be used as a filter in the column coloring conditions.
Column Coloring Conditions
• Eight different conditions can be turned on or off to determine the color of the volume columns. All "ON" conditions must be met to determine a high/low state of relative volume,
or, in the case of directional relative volume, a bull/bear state.
• A volatility state can also be used to filter the conditions.
• When the coloring conditions and the filter do not allow for a high/low state to be determined, the neutral color is used.
• Transitions of the color of the volume columns determined by coloring conditions are used to plot the up/down markers, which in turn control when alerts are triggered.
Colors
• You can define your own colors for all of the oscillator's plots.
• The default colors will perform well on light or dark chart backgrounds.
Alerts
• An alert can be defined for the script. The alert will trigger whenever an up/down marker appears in the indicator's display.
The particular combination of coloring conditions and the display settings for up/down markers when you create the alert will determine which conditions trigger the alert.
After alerts are created, subsequent changes to the conditions controlling the display of markers will not affect existing alerts.
• By configuring the script's inputs in different ways before you create your alerts, you can create multiple, functionally distinct alerts from this script.
When creating multiple alerts, it is useful to include in the alert's message a reminder of the particular conditions you used for each alert.
• As is usually the case, alerts triggering "Once Per Bar Close" will prevent repainting.
Error messages
Error messages will appear at the end of the chart upon the following conditions:
• When the combination of the timeframe units used and the "Past Volume Lookback in TF units" value create a lookback that is greater than 5000 bars.
The lookback will then be recalculated to a value such that a runtime error does not occur.
• If the chart's timeframe is higher than the timeframe units. This error cannot occur when using Auto-steps to calculate timeframe units.
• If relative volume cannot be calculated, for example, when no volume data is available for the chart's symbol.
• When the threshold of relative volume is configured to be visible but the indicator's scale does not allow it to be visible (in "Current Volume Columns" display mode).
█ NOTES
For traders
The chart shown here uses the following display modes: "Current Volume Columns", "Relative Volume Columns With Average", "Directional Relative Volume Average" and "Relative Volume Average". The last one also shows the threshold channel in standard deviation mode, and the TF Unit reminder to the right, in red.
Volume, like price, is a value with a market-dependent scale. The only valid reference for volume being its past values, any improvement in the way past volume is calculated thus represents a potential opportunity to traders. Relative volume calculated as it is here can help traders extract useful information from markets in many circumstances, markets with cyclical volume such as Forex being one, obvious case. The relative nature of the values calculated by this indicator also make it a natural fit for cross-market and cross-sector analysis, or to identify behavioral changes in the different futures contracts of the same market. Relative volume can also be put to more exotic uses, such as in evaluating changes in the popularity of exchanges.
Relative volume alone has no directional bias. While higher relative volume values always indicate higher trading activity, that activity does not necessarily translate into significant price movement. In a tightly fought battle between buyers and sellers, you could theoretically have very large volume for many bars, with no change whatsoever in bid/ask prices. This of course, is unlikely to happen in reality, and so traders are justified in considering high relative volume values as indicating periods where more attention is required, because imbalances in the strength of buying/selling power during high-volume trading periods can amplify price variations, providing traders with the generally useful gift of volatility.
Be sure to give the "Directional Relative Volume Average" a try. Contrary to the always-positive ratio widely used in this indicator, the "Directional Relative Volume Average" produces a value able to determine a bullish/bearish bias for relative volume.
Note that realtime bars must be complete for the relative volume value to be confirmed. Values calculated on historical or elapsed realtime bars will not recalculate unless historical volume data changes.
Finally, as with all indicators using volume information, keep in mind that some exchanges/brokers supply different feeds for intraday and daily data, and the volume data on both feeds can sometimes vary quite a bit.
For coders
Our script was written using the PineCoders Coding Conventions for Pine .
The description was formatted using the techniques explained in the How We Write and Format Script Descriptions PineCoders publication.
Bits and pieces of code were lifted from the MTF Selection Framework and the MTF Oscillator Framework , also by PineCoders.
█ THANKS
Thanks to dgtrd for suggesting to add the channel using standard deviation.
Thanks to adolgov for helpful suggestions on calculations and visuals.
Look first. Then leap.
Extrapolated Pivot Connector - Lets Make Support And ResistancesIntroduction
The support and resistance methodology remain the most used one in technical analysis, this is mainly due to its simplicity, and unlike lots of techniques used in technical analysis support and resistances have a certain logic, price can sometimes appear moving into a channel, support and resistances allow the trader to estimate such channel and project it into the future in order to spot points where price might reverse direction.
In this script a simple linear support and resistance indicator is proposed, the indicator is made by connecting past pivot high's/low's to more recent ones and extrapolating the resulting connection. The indicator is also able to make support and resistances by using other indicators as input.
Indicator Settings
The indicator include various settings, the first one being the length setting who determine the sensitivity of the pivot high/low detection, low values of length will detect the pivot high/low of noisy variations, while higher values will detect the pivot high/low of longer term variations.
The figure above use length = 5.
The A-High parameter determine the position of the pivot high to be used as first point of the resistance line, higher values will use oldest pivot high's as first point. The B-High parameter determine the last pivot high. A-Low and B-Low work the same way but affect the support line, a label is drawn on the chart in order to help you determine the position of A/B-High/Low.
Using Other Indicators Output As Input
The "Use Custom Source" option allow you to apply the indicator to other indicators, for example we can use a moving average of period 50 as input
Or the rsi :
Let me help you set the proposed indicator easily to indicators appearing on a separate window, for example the momentum oscillator, add the momentum oscillator to the chart, to do so click on indicator and search "momentum", click on the first result, once on the chart put your mouse pointer on the indicator title, you'll see appearing the hide, settings and delete option, at the right of delete you should see three dots which represent the "more" option, click on it and select "Add indicator on Mom" and select the extrapolated pivot indicator, you can do that by searching it, altho it might be easier to do it by adding the indicator to favorites first, you then only need to select it from your favorites.
You might see a mess on the indicator window, thats because the extrapolated pivot is still using high and low as input, go to the settings of the extrapolated pivot indicator and check "Use Custom Source", it should appear properly now.
Tips And Tricks When Using Support And Resistances
Linear support and resistances assume an approximately linear trend, if you see non linear growth in the price evolution you can use a logarithmic scale in order to have a more linear evolution. To do so right click on the the chart scale and select "Logarithmic" or use the following key shortcut "alt + l".
When applying the indicator to an oscillator centered around zero make sure to adjust the settings of the oscillator such that the peak magnitude of the oscillator is relatively constant over time.
Here a roc of period 9 has non constant peak amplitude, you can see that by looking at the position of the pivots (circles), increasing the period of the roc help capture more significant pivots high's/low's
Conclusion
In this post an indicator aiming to draw support and resistances is presented, the fact that it can be applied to any other indicator is a relatively nice option, and i hope you might make use of this feature.
The code make heavy use of the new features that where integrated on the v4 of pine, such features are really focused on making figures and labels, things i don't really work with, but it is nice to step out my short codes habits, and i don't exclude working with figures in pine in the future.
Thanks for reading !
SMC Market Structure (HH/HL/LH/LL + BOS/CHoCH/MSS)SMC Market Structure (HH/HL/LH/LL + BOS/CHoCH/MSS) is a clean price-action / Smart Money Concepts market structure tool designed to automatically identify and label key structural events on the chart:
Swing structure points: HH, HL, LH, LL
Continuation confirmations: BOS (Break of Structure)
Early reversal warnings: CHoCH (Change of Character)
Stronger reversal signals: MSS (Market Structure Shift) using a displacement filter
The script is built to remain visually tidy: it draws simple horizontal structure lines at the broken swing level and prints small abbreviations (BOS / CHoCH / MSS) directly on the chart without cluttering candles or adding heavy panels.
What the Indicator Detects
1) Swing Points (HH / HL / LH / LL)
Swings are detected using confirmed pivots (left/right “Swing length” bars).
HH (Higher High): a swing high above the previous swing high
LH (Lower High): a swing high below the previous swing high
HL (Higher Low): a swing low above the previous swing low
LL (Lower Low): a swing low below the previous swing low
These labels help define the market’s active structure:
Bullish structure: HH + HL sequence
Bearish structure: LL + LH sequence
Range / consolidation: mixed swing progression
2) BOS (Break of Structure) – Trend Continuation
A BOS prints when price breaks the most recent swing level in the direction of the current structure:
In a bullish market state → break above the most recent swing high
In a bearish market state → break below the most recent swing low
This is typically treated as confirmation that the existing trend is continuing.
3) CHoCH (Change of Character) – Early Reversal Signal
A CHoCH prints on the first break against the current structure:
In a bullish market state → break below the most recent swing low
In a bearish market state → break above the most recent swing high
CHoCH is intended as an early warning that the market may be transitioning into a new directional bias.
4) MSS (Market Structure Shift) – Stronger Reversal via Displacement
MSS is treated as a “strong CHoCH” and requires a decisive, displacement-style candle at the break.
To qualify as MSS, the script requires:
A break against structure with a CLOSE break, and
A displacement candle where:
Candle body > ATR × Displacement Multiplier
This helps filter out shallow wicks or minor liquidity grabs and highlights shifts that show stronger participation and momentum.
How the Indicator Draws on the Chart
When a BOS / CHoCH / MSS occurs:
A horizontal line is drawn from the swing point to the break bar at the broken level.
A small abbreviation label (BOS / CHoCH / MSS) is placed either:
In the middle of the line segment, or
On the break bar (selectable)
Swing labels (HH/HL/LH/LL) are optional and can be disabled for a cleaner “event-only” layout.
Inputs & Settings
Swing Length (Pivot Left/Right)
Controls how sensitive the swing detection is.
Lower values (3–5): more structure points, more signals
Higher values (8–14): fewer, cleaner swings (better for higher timeframes)
Break Confirmation (Wick vs Close)
Wick: break triggers when the candle’s wick crosses the swing level
Close: break triggers only when the candle closes beyond the swing level
Many SMC traders prefer Wick for detecting liquidity runs and early breaks, while others prefer Close to reduce false signals.
MSS Displacement Filter
ATR Length: ATR calculation period
Displacement Multiplier: Minimum body size = ATR × multiplier
Higher multiplier = fewer MSS signals, but stronger quality threshold.
Display Toggles
Show/Hide Swing Labels (HH/HL/LH/LL)
Show/Hide BOS, CHoCH, MSS
Optional EQH/EQL labeling (equal highs/lows)
Visual Controls
Bullish / bearish structure colors
Line width / style
Text offset (in ticks) to keep labels neat above/below level
Maximum structure objects to keep on screen (prevents object-limit issues)
Recommended Usage
Trend Following
Use HH/HL or LL/LH progression to define the trend.
Wait for BOS to confirm continuation.
Use BOS levels as:
Bias confirmation
Potential retest zones
Risk reference for stop placement
Reversal / Shift Detection
Identify prevailing structure (bullish or bearish).
Watch for CHoCH as the first sign of a possible reversal.
Treat MSS as a stronger “shift” event (displacement + close break), often suitable for:
Changing directional bias
Switching from pullback trading to reversal continuation setups
Multi-Timeframe Workflow (Common SMC Method)
Higher timeframe (HTF): use swings and BOS to define macro bias
Lower timeframe (LTF): use CHoCH/MSS to time entries and manage risk
Confirm entries with your preferred tools (order blocks, FVGs, liquidity pools, session timing, etc.)
Notes & Limitations
This script uses confirmed pivots, so swing labels appear only after the swing is fully formed (after Swing length bars). This avoids repainting swing points.
BOS/CHoCH/MSS events are derived from the most recent confirmed swing levels.
MSS requires a close break and displacement threshold even if “Wick” breaks are enabled for other events (by design, to keep MSS strict).
Best Settings by Timeframe (General Guide)
Scalping (1–5m): Swing length 3–5, Wick breaks, MSS multiplier 1.2–1.8
Intraday (15m–1h): Swing length 5–8, Wick or Close, MSS multiplier 1.5–2.0
Swing trading (4h–1D): Swing length 8–14, Close breaks, MSS multiplier 1.8–2.5






















